作業中の UIWebView プロジェクトを WkWebView に置き換えようとしています。多くの投稿を見てきましたが、WKWebView からすべての Cookie を取得するための適切な解決策が得られませんでした。私もこれを試しましevaluateJavaScript:@"document.cookie;"
たが、これが得られます()
。私もこの投稿をチェックし、理解したようにこの解決策も試しましたが、うまくいきませんでした。
guard let cookies = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies else {
return
}
WKWebView は Cookie をすぐに書き戻さないため、上記の方法は UIWebView でのみ機能します。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)
}