如何在IOS中的WKWebView中获取完整的Cookie详细信息

时间:2017-03-21 10:09:21

标签: ios swift

在我的应用中,Webview上有一个登录页面,网址基于https 。我想从cookie获取登录用户名和密码。但是无法取得它

我尝试了 [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies] 它只是向我发送域名,创建时间等其他Cookie详细信息,但没有提供用户在登录时输入的详细信息。 如果有人对此有所了解,请帮助。

2 个答案:

答案 0 :(得分:0)

所以你就像用户将从UIWebView登录一样,它将登录到应用程序。

如果是这种情况,则应通过网络开发人员从网页保存与用户名和密码相关的cookie。还应该知道cookie名称。

因此,当页面重新加载时,您需要检查用户是否登录的cookie。 (这将从服务器端设置)。对于例如“isLogin”cookie设置为“1”,然后您可以检查“username”和“password”(也是从服务器端设置)的其他cookie,您可以登录该应用程序。

谢谢。

答案 1 :(得分:0)

在ios 11中,我们可以使用WKWebsiteDataStore

extension WKWebView {

private var httpCookieStore: WKHTTPCookieStore  {
    return WKWebsiteDataStore.default().httpCookieStore
}

func getCookies(for domain: String? = nil, completion: @escaping ([String : Any])->())  {
    var cookieDict = [String : AnyObject]()
    httpCookieStore.getAllCookies { (cookies) in
        for cookie in cookies {
            if let domain = domain {
                if cookie.domain.contains(domain) {
                    cookieDict[cookie.name] = cookie.properties as AnyObject?
                }
            } else {
                cookieDict[cookie.name] = cookie.properties as AnyObject?
            }
        }
        completion(cookieDict)
    }
}
}