2013-12-09 185 views
5

我的問題是WebView處理重定向和自定義Cookie。Android WebView在重定向中丟失Cookies

我做如下:

  1. 創建應用程序的CookieSyncManagerCookieManager情況下,在靜態部分創建
  2. 呼叫sCookieManager.setAcceptCookie(true);在UTIL類
  3. 呼叫sCookieManager.setCookie(url, value); sCookieSyncManager.sync();
  4. 最後mWebView.loadUrl

Wh在服務器端發生的事情是,它首先得到我設置的正確的cookie,運行一些重定向,cookie似乎丟失了。任何想法,我在這裏做錯了什麼?

我試過運行setCookie - sync在另一個線程給了一些延遲,然後loadUrl但它沒有幫助。

所有類似的帖子似乎都有解決方案不起作用。

謝謝。

UPDATE:

我注意到,使用setCookie給多個Cookie例如像:

setCookie("MyCookie=value; Domain=mydomain.com; Path=/; Secure; HttpOnly; MySecondCookie=value2....)" 

只有第一個應用,然後當服務器運行重定向它自己的域名就不見了。 這個問題可以固定設置自定義曲奇一次一個循環。

我暫時在onReceivedSslError添加handler.proceed();,我可以從它的觸發之前的網站重定向和餅乾是失去了在上onPageFinished下一個頁面的日誌中看到,莫不是安全cookie和無效的證書鏈之間有着某種聯繫?使用不

sCookieManager.setCookie(url, value) 

sCookieManager.setCookie(cookieDomain, value) 

cookieDomain您可以使用Chrome找到例如

+0

我面對同樣的問題?你有沒有解決這個問題? –

回答

0

嘗試://檢查

工作例如:

String cookieDomain = ".www.drive2.ru"; 
String siteUrl = "https://drive2.ru"; 

webView = (WebView) getView().findViewById(R.id.web_view); 
webView.setWebViewClient(new WebViewClient()); // force open any new url in same webview (whether it is user click or redirect) 

CookieManager cookieManager = CookieManager.getInstance(); 
cookieManager.setAcceptCookie(true); 
cookieManager.setCookie(cookieDomain, "cookieName=cookieValue"); 
webView.loadUrl(siteUrl);