版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337775
最近开发新功能,其中有加载网页的需求,而最近又了解到了WKWebView,说是耗内存小、加载速度快、与JS的交互好。因为需要与网页进行交互,而之前使用UIWebView发现与网页的交互并不是很好,于是这次决定使用WKWebView。
在体会着使用新控件且更好的控件的喜悦的时候,一个新的问题出现了--加载网页,后台无法及时获取cookie。后台无法及时获取cookie,在加载网页的时候就无法加载到正确的数据。(需要多加载几次网页,才能加载到正确的数据)
在查阅相关资料后,发现在使用WKWebView的时候需要我们手动添加cookie到网页中。而之前使用的UIWebView会自动cookie,所有也就不用我们担心后台无法及时获取cookie的问题。
在使用WKWebView的时候手动添加cookie:
NSMutableDictionary *cookieDic = NSMutableDictionary dictionary;
NSMutableString *cookieValue = NSMutableString stringWithFormat:@"";
NSHTTPCookieStorage *cookieJar = NSHTTPCookieStorage sharedHTTPCookieStorage;
for (NSHTTPCookie *cookie in cookieJar cookies) {
cookieDic setObject:cookie.value forKey:cookie.name;
}
// cookie重复,先放到字典进行去重,再进行拼接
for (NSString *key in cookieDic) {
NSString *appendString = [NSString stringWithFormat:@"%@=%@;", key, cookieDic valueForKey:key];
cookieValue appendString:appendString;
}
NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:NSURL URLWithString:self.url];
request addValue:cookieValue forHTTPHeaderField:@"Cookie";
NSLog(@"添加cookie");
self.webView loadRequest:request;
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有