美文网首页
WKWebView处理cookie问题

WKWebView处理cookie问题

作者: 山有木枝壮 | 来源:发表于2017-08-07 17:28 被阅读76次

    问题描述

    公司接入第三方H5接入,页面上需要输入用户名和密码,使用WKWebView总是记不住密码(应该是有时能记住,有时记不住,他们的后台将用户名保存在了cookie中,android的处理是拿到cookie,手动flush一下,不然有时不会及时保存在本地。但是iOS拿不到这个cookie,也没有所谓的flush方法)

    解决方法

    1、服务端将cookie放在responde的header中
    2、客户端拿到header中的cookie,保存在HTTPCookieStorage中,也可以说是替换

    func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
            if let response = navigationResponse.response as? HTTPURLResponse, let headerField = response.allHeaderFields as? [String: String], let url = response.url {
                let cookie = HTTPCookie.cookies(withResponseHeaderFields: headerField, for: url)
                HTTPCookieStorage.shared.setCookies(cookie, for: response.url, mainDocumentURL: response.url)
                
            }
            decisionHandler(.allow)
        }
    

    相关文章

      网友评论

          本文标题:WKWebView处理cookie问题

          本文链接:https://www.haomeiwen.com/subject/vjpalxtx.html