【WKWebview填坑(二)】WKWebview和H5的Cookie传值(已解决),不需考虑iOS版本

1.定义一个方法,方法名setTheCookieOfWebView,方法具体实现如下:

NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
//先删除Userid的cookie(你自己那边表示登录状态的name)
[self.myWebView evaluateJavaScript:@"document.cookie='Userid =;expires=Thu, 01 Jan 1970 00:00:00 GMT; Domain=.baidu.com; path=/'" completionHandler:nil];

for (NSHTTPCookie *cookie in [cookieStorage cookies]) {
    
    NSString *nameStr = [NSString stringWithFormat:@"document.cookie='%@=%@;expires=Wed, 25 Sep 2075 17:05:15 GMT;domain=%@;path=%@;verson=%lu;'",cookie.name,cookie.value, cookie.domain, cookie.path, (unsigned long) cookie.version];
    [self.myWebView evaluateJavaScript:nameStr completionHandler:nil];
}

2.在wkwebview的代理中添加上面写的方法及可。

/* 开始返回内容 */
-- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation{
[self setTheCookieOfWebView];
NSLog(@"开始返回内容");
}

ps:wkwebview的坑还是比较多的,特别是cookie的问题,每次请求的时候不会自动带,所以采用了另外一种思路,直接取本地的cookie注入js的document,也解决了web有时候取不到cookie的问题。暂时没发现什么问题,如有问题欢迎留言讨论。

项目接近尾声了,wkwebview的封装也差不多了,等有时间整理下把js和web的交互写下。

你可能感兴趣的:(【WKWebview填坑(二)】WKWebview和H5的Cookie传值(已解决),不需考虑iOS版本)