轉自:http://blog.csdn.net/encienqi/article/details/7912733
我們在android中訪問網絡經常會用到Apache的HttpClient,用此類去訪問網絡獲取數據,
但是在寫android界面的時候又時不時的會用到一些WebView組件,這時候訪問一個以經登錄的頁面的時候cookie設置就有個問題
在HttpClient中保存下來的Cookie怎么設置到WebView組件里,讓WebView也保持住Cookie狀態,也就是登錄狀態呢?
CookieSyncManager和CookieManager就是做這種事的,下面來看代碼里怎么設置Cookie讓WebView也保持登錄狀態:
- /**
- * 同步一下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之后不能再設置
- webView.getSettings().setBuiltInZoomControls(true);
- webView.getSettings().setJavaScriptEnabled(true);
這類屬性,否則設置Cookie無效。