我正在尝试更新Android应用。它是使用目标API 21开发的。它在我的API 19手机(以及其他一些具有各种构建版本的设备)上运行良好,但在我的新API 22手机上却没有。它是新的WebView包。该应用程序主要包含指向html资源或通过字符串数组的实时网页的链接。资产链接工作正常,但网站链接给我一个错误。例如: "网页不可用。无法加载http://www.ushistory.org/franklin/info的网页,因为net :: ERR_CACHE_MISS"
我查看了developer.android.com和其他资源,并调整了代码以获取此信息:
WebView resWebView = new WebView(getActivity());
WebSettings webSettings = resWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
if (Build.VERSION.SDK_INT >= 21) {
resWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
resWebView.getSettings().setMixedContentMode(WebSettings
.MIXED_CONTENT_COMPATIBILITY_MODE);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptThirdPartyCookies(resWebView, true);
}
resWebView.loadUrl("http://www.ushistory.org/franklin/info ");
scroller.addView(resWebView);
我玩过不同的模式,但它仍然不起作用。我错过了什么?
答案 0 :(得分:0)
嗯,事实证明我并不需要上述任何改变。我昨天在两部手机上安装了系统更新,然后回到原始代码(减去卷轴):
WebView resWebView = new WebView(getActivity());
WebSettings webSettings = resWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
resWebView.loadUrl(url);
它工作正常。
答案 1 :(得分:0)
在Manifest上添加权限
uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
并将缓存设置为已启用:
webview.getSettings().setAppCacheEnabled(true);