如何从WKWebView获取cookie?
如何从WKWebView实例获取所有 Cookie?
这是我到目前为止所尝试的:
-
我尝试使用
- [WKWebView evaluateJavaScript:completionHandler:]
来评估document.cookie
– 不幸的是,结果不包含标记为HttpOnly的 cookie。 -
根据介绍现代WebKit API(WWDC 2014会话206) ,应该可以从
WKNavigation
实例获取response
对象。 但是,根据类参考 ,WKNavigation
不包含任何公共方法/属性。
由于这个问题在一年之后还没有回答,所以我发布了我不完善的工作scheme:
您可以访问在- webView:decidePolicyForNavigationResponse:decisionHandler:
定义的- webView:decidePolicyForNavigationResponse:decisionHandler:
方法中的NSHTTPURLResponse
对象。 您稍后可以从HTTP头手动提取cookie:
- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler { NSHTTPURLResponse* response = navigationResponse.response; NSArray *cookies = [NSHTTPCookie cookiesWithResponseHeaderFields:[response allHeaderFields] forURL:[NSURL URLWithString:@""]]; for (NSHTTPCookie *cookie in cookies) { // Do something with the cookie } decisionHandler(WKNavigationResponsePolicyAllow); }
如果您有更好的解决scheme,请发布您的解决scheme。