【发布时间】:2013-03-13 23:44:58
【问题描述】:
我正在开发一个 Worklight 项目,该项目下载一个 zip 文件,将其解压缩并将文件存储在平台的特定文档目录中(在 iOS 中为 NSDocumentDirectory,在 Android 上我使用的是 getFilesDir()) .该文件由一个 HTML 文件和多个图像组成,位于子目录(媒体)中。下载和解压缩在两个平台上都可以正常工作。在解压缩过程之后,我将 HTML 文件的内容加载到现有的 div 中(因为这是一个 Worklight 应用程序,所以所有内容都在一个 HTML 文件中)。
这里的事情变得复杂了:
我下载的 HTML 文件中的图像标签源是相对于 HTML 文件的(例如“media/myimage.jpg”)。当我将 HTML 文件注入 Worklight HTML 文件(位于应用程序包/包中)时,基本 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 权限。
有人知道如何解决这个问题吗?谢谢!
【问题讨论】:
-
看看[Android /data/data/mypackage/img][1] [1]:stackoverflow.com/questions/7408838/…
-
@René,你解决了吗?
-
原来这个错误是由宽度大于 1500 像素的图像引起的。缩小它们后,错误消失了。我猜一定是Android webview的问题。
标签: android html cordova ibm-mobilefirst