【问题标题】:WebView local files is not loading page in Android 9.0?WebView 本地文件在 Android 9.0 中没有加载页面?
【发布时间】:2019-08-09 05:18:02
【问题描述】:
mWebView.loadUrl("file:///android_asset/html/index.html");

在旧版本上,本地文件的 webview 工作正常,但是当我决定在 android 9 上进行测试时,它给出了一个空白页面。

我已经尝试过WebView is not loading page in Android 9.0? 这些解决方案。

【问题讨论】:

    标签: android webview android-webview android-9.0-pie


    【解决方案1】:

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

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

    它的作用

    它允许您的应用访问基于非安全(非 Https)的 url。见Security Config

    来自文档

    注意:本节中的指南仅适用于面向 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”
    • logcat没有错误,只是显示了一个白色的空白页。
    • 你也可以用webView.loadData(total.toString(), "text/html", "UTF-8")代替webView.loadDataWithBaseURL(null, total.toString(), "text/html", "UTF-8", null)
    猜你喜欢
    • 2014-01-19
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多