Bootstrap

Android WebView加载不到cookie

以下配置根据需求酌情添加,建议逐个试验,cookie操作不是内存操作,建议修改配置后卸载app再重新运行防止缓存影响测试结果。

1.设置应用程序的 WebView 实例是否应发送并接受 Cookie

CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);

2.设置支持js,cookie一般都是通过js写入

webView.getSettings().setJavaScriptEnabled(true);

3.在Android 4.4及以下的系统,webview是默认接收第三方cookie的。但是,从android 5.0开始,webview默认是不接受第三方cookie的

if(Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) { 
     CookieManager.getInstance().setAcceptThirdPartyCookies(mWebView,true);
}

4.允许跨域

// 允许跨域请求
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    webSettings.setAllowUniversalAccessFromFileURLs(true);
}else {
    // 对于低于API 16的版本,使用如下方式
    webSettings.setAllowUniversalAccessFromFileURLs(false);
}

;