1. 程式人生 > >android webview H5開發若干問題之問題二:cookie問題

android webview H5開發若干問題之問題二:cookie問題

        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丟失問題並不是在所有手機上出現,只會在某些手機上出現在。