WKWebview丢失登录cookie

时间:2016-04-09 06:57:04

标签: ios cookies wkwebview nshttpurlresponse nshttpcookiestorage

我目前在使用WKWebView显示网页的混合应用程序时遇到问题。

应用程序重新启动并创建新会话/ WKWebWiew后,将从Web服务向WKWebView提供新的登录cookie。这在三次尝试中有两次正常工作,但在某些情况下,登录cookie不会存储在WKWebView(NSHTTPCookieStorage)使用的共享cookie存储中。

(使用与UIWebview相同的web服务工作正常)

我尝试过网络分析工具,我可以看到网络服务正在向我发送新的cookie。由于某种原因,WKWebView / NSURLRequest不存储更新的登录cookie。我已经读过WKWebView似乎按计划的时间间隔更新了cookie,你可以通过更新WKProcessPool强制它更新,但没有成功。

我一直在尝试使用以下方式从网络服务中读取登录cookie:

- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler {
...
NSHTTPURLResponse *urlResponse = (NSHTTPURLResponse *)navigationResponse.response; 
NSArray *cookies = [NSHTTPCookie cookiesWithResponseHeaderFields:urlResponse.allHeaderFields forURL:urlResponse.URL];
...

但由于某种原因,会话cookie /登录cookie在标题中不可见,我的猜测是由于某种原因它被NSURL隐藏,因为我可以看到它们,如果我通过设置关闭自动Cookie处理:

<NSMutableURLRequest>.HTTPShouldHandleCookies
然而,它确实给了我很多其他问题......

有没有人有类似的问题或任何意见?

0 个答案:

没有答案