WKWebView并没有在navigationResponse中提供所有的cookie

我正在尝试用WkWebViewreplace我工作的UIWebView项目。 我见过很多post,但是我没有得到任何从WKWebView获取所有cookie的好方法。 我也试过了这个evaluateJavaScript:@"document.cookie;" 但它给了我() 。 我也检查了这个post ,也试过这个解决scheme,据我所知,但它也没有奏效。

guard let cookies = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies else { return }上面的方法只适用于UIWebView,因为WKWebView不会立即回写cookies。 任何人都可以告诉我怎样才能从WKWebView的所有cookie。 谢谢

这种方法的工作,但没有给我所有的cookies。

 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) }