標籤:
轉自:http://blog.csdn.net/encienqi/article/details/7912733
我們在android中訪問網路經常會用到Apache的HttpClient,用此類去訪問網路擷取資料,
但是在寫android介面的時候又時不時的會用到一些WebView組件,這時候訪問一個以經登入的頁面的時候cookie設定就有個問題
在HttpClient中儲存下來的Cookie怎麼設定到WebView組件裡,讓WebView也保持住Cookie狀態,也就是登入狀態呢?
CookieSyncManager和CookieManager就是做這種事的,下面來看代碼裡怎麼設定Cookie讓WebView也保持登入狀態:
Java代碼
- /**
- * 同步一下cookie
- */
- public static void synCookies(Context context, String url) {
- CookieSyncManager.createInstance(context);
- CookieManager cookieManager = CookieManager.getInstance();
- cookieManager.setAcceptCookie(true);
- cookieManager.removeSessionCookie();//移除
- cookieManager.setCookie(url, cookies);//cookies是在HttpClient中獲得的cookie
- CookieSyncManager.getInstance().sync();
- }
在android裡面在調用webView.loadUrl(url)之前一句調用此方法就可以給WebView設定Cookie
注:這裡一定要注意一點,在調用設定Cookie之後不能再設定
Java代碼
- webView.getSettings().setBuiltInZoomControls(true);
- webView.getSettings().setJavaScriptEnabled(true);
這類屬性,否則設定Cookie無效。
關於android webview 設定cookie的問題