脱机缓存清单在iPhone上被忽略

时间:2012-06-24 14:46:05

标签: ios html5-appcache

我有一个演示应用程序,应该是创建offline APP that works on mobile devices的示例。我创建了一个manifest file,并使用正确的MIME类型为其提供服务,但应用程序中的主图像始终在线提取,如果我进入飞行模式,则尽管处于缓存中,图像仍无法加载。

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

更新

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

更新

我已经简化了很多示例,并提出了许多建议,但仍然存在问题。以下是我到目前为止所尝试的步骤。

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

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

  3. 在清单

  4. 中添加了NETWORK: *
  5. 已将NETWORK: *移至CACHE:标题上方。

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

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

2 个答案:

答案 0 :(得分:2)

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

运行validator会出现以下错误:

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

答案 1 :(得分:1)

经过大量的反复试验,我可以确认我已经解决了这个问题。

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

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

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

但实际上,不要添加此内容。从我的演示应用程序中删除此标记可在IOS 5.1.1上立即解决问题 - 因此您需要确定是否必须具有脱机缓存,或者是否必须具有全屏风格,而不是在Safari中运行。