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

Ren*_*ené 6 html android cordova ibm-mobilefirst

我正在开发一个Worklight项目,它下载一个zip文件,解压缩它,并将文件存储在平台的特定文档目录中(在NSDocumentDirectory我正在使用的Android上的iOS中getFilesDir()).该文件由一个HTML文件和几个图像组成,位于子目录(媒体)中.下载和解压缩在两个平台上都可以正常工作.在解压缩过程之后,我将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
Run Code Online (Sandbox Code Playgroud)

如果我按原样保存文件,HTML会正确加载,但很明显会出现损坏的图像.我还尝试将URL更改为file:///data/data/<id>/files/ [...],这也导致HTML无法完全加载.我真的不知道是什么导致了这个问题.该应用已获得WRITE_EXTERNAL_STORAGE许可.

有谁知道如何解决这个问题?谢谢!

Ren*_*ené 2

事实证明,此错误是由宽度大于 1500 像素的图像引起的。缩小后,错误消失。我猜一定是 Android webview 的问题。