1

我有一个演示应用程序,它应该是创建可在移动设备上运行的离线应用程序的示例。我创建了一个清单文件,并使用正确的 MIME 类型为其提供服务,但应用程序中的主图像始终在线获取,如果我进入飞行模式,尽管图像在缓存中,但不会加载。

为什么图片不在离线缓存中?

更新

我现在有一个有效的应用程序缓存清单,但在 iPhone 上我随机无法获得主图像 - 即使在线时也是如此。我有一个手动刷新按钮,通常会在第二次或第三次尝试时获取图像,但是当我从主屏幕打开应用程序时,它有一个“?” 而是占位符。

更新

我已经简化了很多示例并纳入了很多建议,但仍然存在问题。这是我到目前为止尝试过的步骤。

  1. 完全删除了 JavaScript - 页面只显示静态图像

  2. 将所有图像替换为小于 25kb 的文件

  3. NETWORK: *在清单中添加了一个

  4. 移动NETWORK: *CACHE:标题上方。

  5. 尝试将“manifest.appcache”重命名为“cache.manifest”

它在 Firefox 中以离线模式工作,磁盘缓存为空(即确保它只能使用离线缓存!),但在 IOS 上仍然显示可怕的蓝色问号(在 iPhone 4s 上测试)。

4

2 回答 2

2

由于缺少文件,您的缓存文件似乎无效。尝试使您的路径相对,例如Puzzle/page.png

运行验证器会出现以下错误:

Line 3: Resource not found

http://www.stevefenton.co.uk/Puzzle/CACHE

Line 4: Resource not found

http://www.stevefenton.co.uk/index.html

Line 5: Resource not found

http://www.stevefenton.co.uk/apple-touch-icon.png

Line 6: Resource not found

http://www.stevefenton.co.uk/page.png

Line 7: Resource not found

http://www.stevefenton.co.uk/knight.png

Line 10: Resource not found

http://www.stevefenton.co.uk/style.css
于 2012-06-24T14:52:25.230 回答
1

经过大量的试验和错误后,我可以确认我已经解决了这个问题。

答案很奇怪,但我已经仔细检查以确保单独进行此更改会导致问题出现/消失。

如果您的应用要添加到 IOS 主屏幕,通常建议使用以下元标记:

<meta name="apple-mobile-web-app-capable" content="yes">

但实际上,不要添加这个。从我的演示应用程序中删除此标签立即解决了 IOS 5.1.1 上的问题 - 因此您需要决定是否必须具有离线缓存或是否必须具有全屏样式,而不是在 Safari 中运行。

于 2012-06-26T13:34:09.950 回答