android webview裡設定cookie
但是在寫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無效。