在我的应用中,Webview上有一个登录页面,网址基于https 。我想从cookie获取登录用户名和密码。但是无法取得它
我尝试了 [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies] 它只是向我发送域名,创建时间等其他Cookie详细信息,但没有提供用户在登录时输入的详细信息。 如果有人对此有所了解,请帮助。
答案 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)
}
}
}