WebView显示来自本地缓存的图片

3

我需要在WebView中展示一些HTML内容,其中包括来自互联网的URL图片和来自本地手机缓存的图片。 img标签的src属性值如下:

file:///data/data/com.Domain.MyApp/cache/example.jpg

但是WebView没有渲染出图片。 我确定路径是正确的且文件存在。可能出现了什么问题,我该如何解决?

2个回答

4

请像以下示例一样设置img标签的src属性:

/data/data/com.Domain.MyApp/cache/example.jpg

将HTML内容保存为HTML文件,并与图像放在同一个文件夹中(在当前问题的缓存目录中)。

最后,按照以下方式加载HTML文件:

mDescriptionWeb.loadUrl("file://" + this.getCacheDir() + "/" + "current.html");

1
我认为cache目录不是一个真正安全的存储位置。您是否已经考虑过使用getExternalStorageDirectory()选项?我的应用程序从互联网下载上下文帮助,将所有文件保存在getExternalStorageDirectory() + "/help"中,并且可以在WebView中打开它们而不会遇到任何问题。请看:

http://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory%28%29

请试一下...

另一个选项是使用Assets,请查看http://developer.android.com/reference/android/content/res/AssetManager.html


在哪些方面会更安全?如果您考虑到缓存目录可以被系统自动清理,那么在我的应用程序中这不会是一个问题。 - yslr
你是想直接打开图片还是只是一个包含<img>标签的.html文件? - Seraphim's
我认为这可能是一个上下文问题。尝试在同一目录下使用相对路径编写带有<img>的html文件。在您的情况下,只需使用src="example.jpg",然后查看会发生什么。 - Seraphim's
谢谢你的帮助。我通过将HTML文件保存到同一目录中解决了问题。 - yslr
好的!你确认这是一个上下文问题。 - Seraphim's

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