WebView 跨域访问Cookie身份认证丢失采坑之路

问题一:ERROR, source file:///android_asset/www/build/vendor.js (1)

Android StudioLog 记录中发现此错误信息,然后通过 Chromeinspect 工具查看到 Log 为:TypeError: Cannot read property 'setItem' of null {stack: (...),解决方案如下:

// webview的设置中添加如下代码
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);  //设置 缓存模式
// 开启 DOM storage API 功能
mWebView.getSettings().setDomStorageEnabled(true);
//开启 database storage API 功能
mWebView.getSettings().setDatabaseEnabled(true);
//开启 Application Caches 功能
mWebView.getSettings().setAppCacheEnabled(true);

问题二:跨域问题

mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAllowFileAccessFromFileURLs(true);
mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);

问题三:身份认证Cookie丢失问题

//5.0以上需要开启第三方Cookie存储
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    CookieManager.getInstance().setAcceptThirdPartyCookies(mWebView, true);
}

 

你可能感兴趣的:(Webview,Cookie)