【发布时间】:2018-12-13 16:42:39
【问题描述】:
目标:将第三方cookies注入WKWebView。
在 iOS 12 之前,我可以通过这个 sn-p 解决问题(请参阅 https://medium.com/@flexaddicted/how-to-set-wkwebview-cookie-accept-policy-d8a2d3b77420):
func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
guard let response = navigationResponse.response as? HTTPURLResponse,
let url = navigationResponse.response.url else {
decisionHandler(.cancel)
return
}
if let headerFields = response.allHeaderFields as? [String: String] {
let cookies = HTTPCookie.cookies(withResponseHeaderFields: headerFields, for: url)
cookies.forEach { cookie in
webView.configuration.websiteDataStore.httpCookieStore.setCookie(cookie)
}
}
decisionHandler(.allow)
}
从 iOS 12 开始,WKWebView 的响应中不再提供 cookie。
https://bugs.webkit.org/show_bug.cgi?id=188691
您知道解决此问题的任何解决方法吗?
【问题讨论】:
-
你有没有解决过这个问题?
-
@timbru31 不,对不起