当前位置: 首页 > 知识库问答 >
问题:

无法打开资产URL:file:///android_asset/error.html

张敏达
2023-03-14

我有一个自定义的错误页面显示在Webview,这是存储在默认的资产文件夹C:\用户\用户\StudioProjects\Appname\app\src\main\资产\error.html

webview客户端的onReceivedError方法中,我像视图那样加载页面。loadUrl(“file:///android_asset/error.html”;

当我编码并测试它时,它工作得很好,然而奇怪的是,我再次测试了它,Webview在file:///android_asset/error.html无法加载,因为:net::ERR_FILE_not_FOUND

我试着从另一个角度来解决这个问题https://stackoverflow.com/a/37994555/4722232,它对html有效,但我有一个logo在里面,有同样的问题,在我得到的日志中

"Not allowed to load local resource: file:///android_asset/logo.png", source: about:blank (0)

任何帮助都将不胜感激

共有1个答案

章盛
2023-03-14
  1. 从asset读取文件并加载到WebView
val htmlFile = "file:///android_asset/file_name.extension" //e.g. index.html
webView.loadUrl(htmlFile)

资产文件夹必须在main

val inputStream = assets.open("file_name.extension")
val buffer = BufferedInputStream(inputStream)
val bytes = buffer.readBytes()
val content = String(bytes)
buffer.close()
webView.loadData(String(content), "text/html", "utf-8")

res-

val inputStream = resources.openRawResource(R.raw.index)
val buffer = BufferedInputStream(inputStream)
val bytes = buffer.readBytes()
val content = String(bytes)
buffer.close()
webView.loadData(String(content), "text/html", "utf-8")

您可以使用Kotlin扩展来简化这个过程

assets.open("file_name.extension").bufferedReader().use { br ->
    webView.loadData(br.readText(), "text/html", "utf-8")
}

确保您的file_name.extension是小写的,并且只包含_,如果它们在res资产文件夹中。

 类似资料:
  • 问题内容: 这与一个年龄较大的人非常相似,但是解决方案对我不起作用。 我有一个WAR包。 在 在 但是得到这个: org.springframework.beans.factory.BeanInitializationException:无法加载属性。嵌套的异常是java.io.FileNotFoundException:无法打开ServletContext资源[/social.propertie

  • 问题内容: 好的,我是第500位用户问这个问题,我读了很多答案,但仍然没有运气。 父模块pom包含: 子模块有,我使用运行我的webapp模块。 定义标准的调度程序模块: 我在下有文件,但是启动失败: 怎么了?文档和所有人都说Spring MVC将搜索XX-servlet.xml,其中XX是servlet的名称。为什么要搜索? 问题答案: 有自己的上下文,所有servlet和过滤器都共享它。默认情

  • 输出 Tkinter回调 回溯(最近一次调用)中出现异常: 文件“C:\Users\Mevada\AppData\Local\Programs\Python\Python37\lib\Tkinter\uuuuuu init\uuuuuuuuuu.py”,第1702行,在调用返回self中。func(*args) 文件“test.py”,第9行,在func\u image font\u type\u

  • 我在下有文件,但启动失败的原因是: 怎么啦?所有人都说Spring MVC将搜索xx-servlet.xml,其中XX是servlet的名称。它为什么搜索?

  • 我知道我将文本文件放在了assets\chat1的位置。txt,我的代码也可以与其他txt一起使用,但不知何故,我总是遇到以下错误: 发生异常。 错误(无法加载资产:assets/chat1.txt) 我的代码: pubspec.yaml

  • 以下是错误按摩: 无法加载Asset:Assets/Images/Waiting.png当引发异常时,这是堆栈图像提供程序:AssetImage(bundle:null,name:“Assets/Images/Waiting.png”)图像键:AssetBundleImageKey(bundle:PlatformAssetBundle#e3e67(),name:“Assets/Images/Wai