android webview H5開發若干問題之問題二:cookie問題
阿新 • • 發佈:2019-01-22
webview要支援cookie需要開啟cookie。還有5.0版本之後的cookie變動。
cookie開啟:在webview初始化之前需要開啟cookie。執行這些程式碼。
CookieManager cookieManager = CookieManager.getInstance(); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { cookieManager.setAcceptThirdPartyCookies(webView,true); } else { cookieManager.setAcceptCookie(true); }
cookieManager.getInstance().sync();
CookieManager.setAcceptFileSchemeCookies(true);
擷取cookie,是在webviewclient中擷取的。
cookie擷取:cookie獲取後可以儲存到本地等,自己對cookie的操作。
webView.getSettings().setAllowFileAccess(true); webView.getSettings().setAllowFileAccessFromFileURLs(true); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setSupportZoom(true);
webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //對cookie的操作。 Log.i("COOKIE", url + "---" + CookieManager.getInstance().getCookie(url) + "---" + CookieManager.getInstance().acceptCookie()); view.loadUrl(url); return true; } });
還可以主動設定cookie和獲取cookie以及清空cookie:
cookieManager.setCookie("chengzhu","cookie");
String chengzhu = cookieManager.getCookie("chengzhu");
cookieManager.removeAllCookie();
為什麼要提cookie的擷取和主動設定和獲取呢?這是因為在webview中有時候會出現cookie的丟失的問題。這個cookie丟失問題並不是在所有手機上出現,只會在某些手機上出現在。