mWebView.loadUrl("file:///android_asset/html/index.html");
在旧版中,webview对本地文件的支持很好,但是当我决定在Android 9上进行测试时,它会显示一个空白页。
我尝试了这些解决方案:WebView is not loading page in Android 9.0?。
mWebView.loadUrl("file:///android_asset/html/index.html");
尝试将以下代码放入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);
}
webView.loadData(total.toString(), "text/html", "UTF-8")
替换webView.loadDataWithBaseURL(null, total.toString(), "text/html", "UTF-8", null)
。 - Bek