我正在开发一个Worklight项目,该项目下载一个zip文件,解压缩,并将文件存储在平台的特定文档目录中(在NSDocumentDirectory
的iOS中,在Android上我正在使用{{ 1}})。该文件由一个HTML文件和几个图像组成,位于子目录(媒体)中。下载和解压缩在两个平台上都可以正常工作。在解压缩过程之后,我将HTML文件的内容加载到现有div中(因为这是一个Worklight应用程序,所有内容都在一个HTML文件中)。
这里的事情变得复杂了:
我下载的HTML文件中的图像标记源是相对于HTML文件的(例如'media / myimage.jpg')。当我将HTML文件注入Worklight HTML文件(位于App包/包中)时,基本URL会发生变化,并且无法在任何地方找到图像。我通过编写本机函数来修复此问题,该函数重写下载的HTML文件中的所有图像标记以指向绝对URL(iOS:getFilesDir()
,Android:/var/mobile/Applications/<identifier>/Documents/
)。这适用于iOS,但在Android上它会导致HTML仅部分加载。 LogCat然后显示:
/data/data/<id>/files/
如果我按原样保留文件,HTML会正确加载,但显然图像损坏了。我还尝试将网址更改为Unknown chromium error: -6
,这也会导致HTML无法完全加载。我真的不知道是什么导致了这个问题。该应用已获得file:///data/data/<id>/files/ [...]
权限。
有没有人知道如何解决这个问题?谢谢!
答案 0 :(得分:2)
原来这个错误是由于图像宽度大于1500像素造成的。缩小它们之后,错误消失。我想,必须是Android webview的问题。