安卓9.0中,WebView无法加载本地文件页面?

4
mWebView.loadUrl("file:///android_asset/html/index.html");

在旧版中,webview对本地文件的支持很好,但是当我决定在Android 9上进行测试时,它会显示一个空白页。
我尝试了这些解决方案:WebView is not loading page in Android 9.0?
1个回答

1

尝试将以下代码放入AndroidManifest.xml中:

<application
    ...
   android:usesCleartextTraffic="true"
    ...>
</application>

它的功能

它允许您的应用程序访问非安全(非Https)基础的URL。请参见安全配置

来自文档

注意:本节中的指导仅适用于针对 Android 8.1(API 级别 27)或更低版本的应用程序。从 Android 9(API 级别 28)开始,默认情况下禁用明文支持。

编辑

try {
    AssetManager assetManager = context.getAssets();
    InputStream stream = assetManager.open("html/index.html");
    BufferedReader r = new BufferedReader(new InputStreamReader(stream));
    StringBuilder total = new StringBuilder();
    String line;
    while ((line = r.readLine()) != null) {
        total.append(line).append("\n");
    }
    webView.loadDataWithBaseURL(null, total.toString(), "text/html", "UTF-8", null);
} catch (Exception xxx) {
    Log.e(TAG, "Error loading html/index.html", xxx);
}

我尝试过了,但在我的情况下它不起作用。我正在使用本地文件“file:///android_asset/html/index.html”。 - Manika
日志中没有错误,只显示一个白色空白页面。 - Manika
你也可以使用 webView.loadData(total.toString(), "text/html", "UTF-8") 替换 webView.loadDataWithBaseURL(null, total.toString(), "text/html", "UTF-8", null) - Bek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接