iOS 在WKWebView设置多个Cookie(总结我跑过的坑)

iOS 在WKWebView设置多个Cookie(总结我跑过的坑)不废话,1-直接说坑;2-po代码。1-直接说坑2-po代码我是大马猴,希望大家指教切磋###不废话,1-直接说坑;2-po代码。1-直接说坑重点1: 通过字典设置相关参数,生成NSHTTPCOOKie对象。我这里生成了三个。并装填进数组中。并给request的HTTPHeaderField进行keyValue赋值。...
摘要由CSDN通过智能技术生成

不废话,1-直接说坑;2-po代码。

1-直接说坑

重点1: 通过字典设置相关参数,生成NSHTTPCOOKie对象。我这里生成了三个。并装填进数组中。并给request的HTTPHeaderField进行keyValue赋值。

重点2: 初始化webView时,要进行对javaScript进行注入。所有的cookie拼接成一个字符串。用分号和换行符隔开。(保证在首次load前,cookie中的数据已存入。)

重点3: 每次进行重定向,也就是调用WKWebView如下代理方法时。都要获取Cookie,并再次传入。保证每次loadURL,都能获取到Cookie

-(void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler

重点4: cookie中如果要传嵌套对象。比如一个包含多个字典的数组,则需要通过NSData 中转,转换为字符串。存入cookieValue中。

重点5:iOS中的cookie不能有中文,需要encode后传入,相应的,如果JS端不能识别,则需要decode。保证安卓和iOS都能存入cookie。这里主要是前端人员的事务。需要沟通。

2-po代码

初始化WKWebView

-(WKWebView*)webV{
   
    if (_webV==nil) {
   
        WKWebViewConfiguration*configuration=[[WKWebViewConfiguration alloc]init];
        // 设置偏好设置
        configuration.preferences = [[WKPreferences alloc] init];
        configuration.preferences.minimumFontSize = 10;
        configuration.preferences.javaScriptCanOpenWindowsAutomatically = NO;
        // 默认认为YES
        configuration.preferences.javaScriptEnabled = YES;
        configuration.userContentController = [[WKUserContentController alloc] init];
        configuration.allowsInlineMediaPlayback = YES;
        
        configuration.processPool = [[WKProcessPool alloc]init];
        
        // web内容处理池
        configuration.processPool = [[WKProcessPool alloc] init];
 
//        LHX20181206 设定UserKey_cookie
        NSDictionary *dictCookie_userKey = [NSDictionary dictionaryWithObjectsAndKeys:@"user_key", NSHTTPCookieName,
                                          _dlModel.user_key, NSHTTPCookieValue,
                                          @"/", NSHTTPCookiePath,
                                          self.uustr, NSHTTPCookieDomain,nil];
        
        NSHTTPCookie *cookieUserKey = [NSHTTPCookie cookieWithProperties:dictCookie_userKey];
//        LHX20181206 设定UserKey_cookie
        NSDictionary *dictCookie_loToken = [NSDictionary dictionaryWithObjectsAndKeys:@"loToken"
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值