UIWebView加载html代码loadHTMLString遇到的问题

遇到的问题

项目中有图文混排显示的需求,后台返回的是一段html代码,这个很简单,直接用webView的loadHTMLString方法就可以实现。问题出现在,后台返回的HTML代码中的img图片链接,并非绝对路径,而是重定向地址,需要登录之后拿到Cookie才能正确的定向到图片。但是如果不做处理iOS应用从后台退出之后,Cookie会自动在本地删除,于是就会导致再次打开APP加载不到正确的图片。

解决方法

方法一、在做请求的时候设置Cookie,这个我不知道loadHTMLString方法的时候如何设置请求Cookie,望告知;
方法二、在登陆成功之后会将Cookie存储到NSHTTPCookieStorage中,我们只需要将本应用的Cookie找到,并设置失效时间和应用退出保留Cookie即可。
//设置Cookie避免退出应用就被清楚失效,退出登录之后这个cookie会被清除
    NSHTTPCookieStorage* cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    NSArray *cookies = [cookieStorage cookies];
    for (NSHTTPCookie *cookie in cookies) {
//        NSLog(@"%@",cookie);
        if ([cookie.name isEqualToString:@"应用Cookie的name"]) {
            NSMutableDictionary *properties = [[cookie properties] mutableCopy];
            //将cookie过期时间设置为一年后
            NSDate *expiresDate = [NSDate dateWithTimeIntervalSinceNow:3600*24*30*12];
            properties[NSHTTPCookieExpires] = expiresDate;
            //下面一行是关键,删除Cookies的discard字段,应用退出,会话结束的时候继续保留Cookies
            [properties removeObjectForKey:NSHTTPCookieDiscard];
            //重新设置改动后的Cookies
            [cookieStorage setCookie:[NSHTTPCookie cookieWithProperties:properties]];
        }
    }
    原文作者:极客飞
    原文地址: https://www.jianshu.com/p/7363a3f5cedb
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞