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的交互写下。