2017-10-26 19 views
0
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { 
    var req = navigationAction.request; 
    let cookie = req.value(forHTTPHeaderField: "Cookie"); 
    print(cookie) // always nil 

    decisionHandler(.allow); 
} 

ユーザログイン後にセッションを取得したいのですが、クッキーは常にnilですが、どうすれば入手できますか?iOSでurlrequestからクッキーを取得する方法

答えて

0

一般に、Cookieはブラウザの変数document.cookieに格納されます。 Javascriptコードを実行してアクセスできます。この場合、単に"document.cookie"がクッキーを返します。

let cookieScript = "document.cookie;" 
    webView.evaluateJavaScript(cookieScript) { (response, error) in 
      if let response = response { 
        print(response as! String) 
       } 
    } 
+0

Cookieがhttpのみの場合はどうなりますか? – xingchi

+0

残念ながら、httponly cookieを読む方法はありません。 –

0

はなぜiOSの11

以来
webView.configuration.websiteDataStore.httpCookieStore.getAllCookies() { cookies in 
    // do what you need with cookies 
} 

一つの利点は、この方法が同様にクッキー追跡HttpOnlyのことである登場WKWebViewのAPIを使用しないでください。

関連する問題