我正在开发一个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
权限。
有没有人有办法修复这个问题?谢谢!