【问题标题】:copying cookies between WKWebView and HTTPCookieStorage - not finding 302 cookies在 WKWebView 和 HTTPCookieStorage 之间复制 cookie - 找不到 302 cookie
【发布时间】:2017-01-23 21:27:05
【问题描述】:

我们正在将 cookie 从 WKWebView 复制到 HTTPCookitStorage.shared 以供 URLSession 任务使用。

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

    if let response = navigationResponse.response as? HTTPURLResponse {

        var headers = [String : String]()
        for (header, value) in response.allHeaderFields {
            headers[(header as? String)!] = value as? String
        }
        let cookies = HTTPCookie.cookies(withResponseHeaderFields: headers, for: response.url!)
        for cookie: HTTPCookie in cookies {
            print(cookie)
            HTTPCookieStorage.shared.setCookie(cookie)
        }
    }

    decisionHandler(.allow)

}

这会捕获大多数 cookie,但如果 WKWebView 中发生 302 重定向则不会。是否可以使用委托方法或其他技术从具有 302 响应代码的响应中捕获 cookie?

【问题讨论】:

  • 您找到解决此问题的方法了吗?我也有同样的问题
  • 没有。我们使用 UIWebView 进行登录,捕获了 cookie。使用 WKUserScript 将 cookie 复制到 WKWebView。
  • 据我所见,没有 WKNavigationDelegate 方法允许访问响应标头等。希望 iOS 11 能够解决其中的一些限制。
  • @MaxMacLeod 这些问题与这篇文章重复

标签: ios cookies ios9 wkwebview ios10


【解决方案1】:

尝试使用PWKWebView 替换原来的WKWebView

【讨论】:

  • 但它不发送重定向期间共享的 Cookie。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-02
  • 1970-01-01
  • 2012-01-22
相关资源
最近更新 更多