浅谈iOS中的WKWebView添加cookie

最近开发新功能,其中有加载网页的需求,而最近又了解到了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];


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值