2013-05-29 120 views
3

我面臨着在Android WebView中設置Cookie的問題。我正在使用以下代碼:如何在Android WebView中設置Cookie

CookieSyncManager.createInstance(this); 
CookieManager cookieManager = CookieManager.getInstance(); 
cookieManager.removeAllCookie();  
cookieManager.setAcceptCookie(true); 
cookieManager.setCookie(url, cookie); 
CookieSyncManager.getInstance().sync(); 

但它不起作用。我也嘗試通過使用WebView的loadUrl(String url, Map<String, String> additionalHttpHeaders)方法添加標題;但它仍然不起作用。有沒有辦法做到這一點?

+0

假設您嘗試將Cookie從DefaultHttpClient傳遞到WebView,我昨天遇到了完全相同的問題,並嘗試了您嘗試的操作。這不是對你的問題的直接回答,但最終什麼對我來說是用DefaultHttpClient獲取內容並通過webView.loadData(htmlString,「text/html」,「UTF-8」)將結果傳遞給WebView。 。當然,這並不理想,但現在已經足夠解決這個問題了。 – ErikR

+0

您能否粘貼您傳遞的Cookie字符串的示例? – qwertzguy

+0

@althaf_tvm你有沒有得到你的解決方案? – Hamid

回答

0

請試試這個

Cookie sessionCookie = LoginWebView.cookie; 
CookieSyncManager.createInstance(webview.this); 
CookieManager cookieManager = CookieManager.getInstance(); 
if (sessionCookie != null) { 
    cookieManager.removeSessionCookie(); 
    String cookieString = sessionCookie.getName(); 
    Log.v(TAG, "sync cookies: " + cookieString); 
    cookieManager.setCookie(domain, cookieString); 
    CookieSyncManager.getInstance().sync(); 
} 
+0

我嘗試過,但仍然無法正常工作。我甚至添加了Thread.sleep(),讓cookie管理員有一段時間來設置和刪除cookie,但它不起作用。 –