WKWebView没有在navigationResponse中提供所有cookie

2023-12-04

我正在尝试用 WkWebView 替换我正在工作的 UIWebView 项目。我看过很多帖子,但我没有得到任何好的解决方案来从 WKWebView 获取所有 cookie。我也尝试过这个evaluateJavaScript:@"document.cookie;"但这给了我这个()。 我也检查了这个post并按照我的理解尝试了这个解决方案,但它也不起作用。

guard let cookies = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies else { return } 上述方法仅适用于 UIWebView,因为 WKWebView 不会立即写回 cookie。 谁能告诉我如何从 WKWebView 获取所有 cookie。 谢谢

这个方法有效,但没有给我所有的cookie。

func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {

        if navigationResponse.response.url?.absoluteString.range(of: "") != nil || navigationResponse.response.url?.absoluteString.range(of: "") != nil{

            let response = navigationResponse.response as? HTTPURLResponse
            let cookies = HTTPCookie.cookies(withResponseHeaderFields: response?.allHeaderFields as! [String : String], for: (response?.url)!)

            var array = [[HTTPCookiePropertyKey : Any]]()
            for cookie in cookies {
                if let properties = cookie.properties {
                    print("cookies save")
                    array.append(properties)
                }
            }
            sCookies.append(array)
            accountsUserDefaults.set(sCookies, forKey: "sCookies")
            UserDefaults.standard.synchronize()
        }

        decisionHandler(WKNavigationResponsePolicy.allow)
    }

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WKWebView没有在navigationResponse中提供所有cookie 的相关文章

随机推荐