Android WebView—設定cookie
阿新 • • 發佈:2020-12-09
技術標籤:AndroidAndroid Webandroidwebviewcookie
Android中WebView載入網頁,有時候需要通過cookie向網頁傳遞資訊,如免登入儲存登入狀態等
設定cookie
在呼叫loadUrl(url);
前一句呼叫以下synCookies()方法進行 Cookie 同步操作。
/** * 給WebView同步Cookie * * @param context 上下文 * @param url 可以使用[domain][host] */ public void synCookies(Context context,Stirng url) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { CookieSyncManager.createInstance(context); } CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setAcceptCookie(true);// 允許接受 Cookie if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { cookieManager.removeSessionCookie();// 移除 } else { cookieManager.removeSessionCookies(null);// 移除 } List<HttpCookie> cookies = UserModle.getInstance(this).getCookies();//獲取本地儲存的cookie for (int i = 0; i < cookies.size(); i++) { HttpCookie cookie = cookies.get(i); String value = cookie.getName() + "=" + cookie.getValue(); cookieManager.setCookie(url, value); } if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { CookieSyncManager.getInstance().sync(); } else { cookieManager.flush(); } }
webview同步cookie位置
專案中使用 WebView 其實會自動將 Cookie 儲存在本地資料庫中。儲存是路徑為 data/data/package_name/app_WebView/Cookies
雖然不是 .db
結尾的,實際就是一個 .db
檔案
注意:如果使用騰訊X5核心,CookieSyncManager、CookieManager等引用X5的類,如圖