在Android Webview中加载本地图片时出现未知的Chromium错误-6

6

我正在开发一个Worklight项目,该项目可以下载一个zip文件,解压缩它,并将文件存储在平台的特定文档目录中(在iOS中是NSDocumentDirectory,在Android上我使用getFilesDir())。该文件包含一个HTML文件和几个图像文件,位于子目录(media)中。在两个平台上下载和解压缩工作正常。解压缩过程结束后,我将HTML文件的内容加载到现有div中(由于这是一个Worklight应用程序,因此所有内容都在一个HTML文件中)。

在这里,事情变得复杂起来: 我下载的HTML文件中的图像标记源相对于HTML文件(例如“media / myimage.jpg”)。当我将HTML文件注入到Worklight HTML文件中时(该文件位于App捆绑/包中),基本URL会改变,而无法在任何地方找到图像。我通过编写本地函数来修复了这个问题,重写了下载的HTML文件中的所有图像标记,以指向绝对URL(iOS:/var/mobile/Applications/<identifier>/Documents/,Android:/data/data/<id>/files/)。这在iOS上很好用,但在Android上会导致HTML仅部分加载。然后LogCat显示:

Unknown chromium error: -6

如果我保留文件不变,HTML 能够正确加载,但是图片显然不能完整呈现。我也尝试将 URL 更改为 file:///data/data/<id>/files/ [...],但这样会导致 HTML 无法完全加载。我真的不知道是什么原因导致了这个问题。该应用程序已经获得了WRITE_EXTERNAL_STORAGE权限。 有没有人有办法修复这个问题?谢谢!

@René,你解决了吗? - Idan Adar
结果发现这个错误是由于图像宽度大于1500px造成的。缩小图片后,错误消失了。我猜这可能是Android webview的问题。 - René
1个回答

2

原来这个错误是由于图片宽度大于1500像素引起的。将它们缩小后,错误消失了。我猜这可能是Android webview的问题。


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