【发布时间】:2022-02-01 07:55:36
【问题描述】:
我想读取一个本地 html 文件以在 Android WebView 中打开它。
为什么以下工作:
webViewMain.apply {
loadUrl("file:///android_asset/index.html")
}
但是这段代码
webViewMain.loadDataWithBaseURL("file:///android_asset/",
URL("file:///android_asset/index.html").readText(Charset.forName("UTF-8")),
"text/html",
"UTF-8",
null)
给我以下错误:java.io.FileNotFoundException: /android_asset/index.html
【问题讨论】:
-
资产中的文件不被视为本地文件。请告知您的文件存放在哪里。
-
我要加载的文件在我项目的
app/src/main/assets/...文件夹中。 -
URL("file:///android_asset/index.html").readText()这行不通,会给你例外。问题不是为什么这不起作用,而是为什么你认为这样的结构可以起作用。问题也是为什么你不满足于你的第一个解决方案。 -
如果你想读取资产资源中文件的文本,你应该使用 getAssets().openInputStream("index.html");并从流中读取文本。但是仍然不清楚为什么你会以这种方式阅读文本。只需使用您的第一个解决方案,WebView 也会读取 .js 和 .css 文件。
-
app/src/main/assets/... folder of my project.确实。那是您的开发机器上的一个文件夹。不在您的 Android 设备上。在您的 Android 设备上,资产成为一种资源。
标签: android html kotlin android-webview