簡體   English   中英

如何在IOS的WKWebView中獲取完整的cookie詳細信息

[英]How to fetch complete cookies detail in WKWebView in IOS

在我的應用程序中,Webview上有一個登錄頁面,URL基於https 我想從cookie中獲取登錄用戶名和密碼。 但無法獲取

我嘗試過[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookie],它只是向我發送其他cookie的詳細信息,例如域,創建時間等,但沒有提供用戶登錄時輸入的詳細信息。 如果有人對此有任何想法,請提供幫助。

因此,您所做的就像用戶將從UIWebView登錄並登錄到應用程序一樣。

在這種情況下,應通過Web開發人員從網頁保存與用戶名和密碼相關的cookie。 Cookie名稱也應該是已知的。

因此,當頁面將被重新加載時,您需要檢查用戶是否已登錄的cookie。 (將從服務器端設置)。 例如,將“ isLogin” cookie設置為“ 1”,則可以使用“用戶名”和“密碼”(也從服務器端設置)的其他cookie進行檢查,然后可以登錄到應用程序。

謝謝。

在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)
    }
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM