webView設定Cookie
阿新 • • 發佈:2019-01-21
我們在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無效。