试图让以前的应用程序与Lollipop WebView兼容

时间:2015-06-06 01:33:30

标签: android webview

我正在尝试更新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);

我玩过不同的模式,但它仍然不起作用。我错过了什么?

2 个答案:

答案 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);