如何从WKWebView获取cookies?

如何从WKWebView实例获取所有Cookie?

以下是我迄今为止所尝试的:

  • 我尝试使用- [WKWebView evaluateJavaScript:completionHandler:]来评估document.cookie - 不幸的是,结果不包含标记为HttpOnly的cookie。

  • 根据介绍现代WebKit API(WWDC 2014会话206),应该可以从WKNavigation实例获取response对象。 但是,根据类别参考, WKNavigation不包含任何公共方法/属性。


  • 由于这个问题在一年后还没有得到解答,我发布了我的不完善的工作解决方案:

    您可以访问一个NSHTTPURLResponse对象- webView:decidePolicyForNavigationResponse:decisionHandler:方法定义WKNavigationDelegate 。 您稍后可以从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);
    }
    

    如果您有更好的解决方案,请发布您的解决方案。

    链接地址: http://www.djcxy.com/p/24473.html

    上一篇: How to get cookies from WKWebView?

    下一篇: Java NIO Zip Filesystem equivalent of setMethod() in java.util.zip.ZipEntry