4

我们使用 .manifest 缓存机制开发了一个离线 HTML5 网络应用程序。一切都按预期工作。

现在我们的一些客户抱怨在长时间离线使用后,缓存的数据突然消失了。事实证明——这是我的猜测——iOS 将缓存文件存储在其 /CACHES/ 目录中,从 iOS 5.0 开始,如果设备空间不足,该目录可能会被清除。这可能随时发生,甚至不会向用户发出警告。因此,离线 web 应用程序不再正常运行。用户必须将设备重新连接到互联网并更新应用程序。

对于本机应用程序,此问题通过将文件存储在 /DOCUMENTS/ 目录中解决,使用标志“不备份”防止文件被清除(因为它们不位于 /CACHES/ 目录中,并且不是备份到 iCloud 或 iTunes。

有关详细信息,请参阅此链接:http: //www.marco.org/2011/10/13/ios5-caches-cleaning,但这并没有说明 HTML5 缓存...

这再次解释了它,但没有解决方案:http ://www.moneytoolkit.com/2012/04/apple-ios-html5-localstorage-is-broken/

有没有人有同样的经历?有针对这个的解决方法吗?目标是安装一次网络应用程序,然后在没有连接的情况下“永远”运行它......

干杯,帕维

4

1 回答 1

0

在 Safari 中没有办法解决这个问题。缓存永远不会被认为是永久的。

如果您在本机应用程序中有 UIWebView,则可以在用户默认值中设置WebKitStoreWebDataForBackup为。YES(仅限 iOS 6+)

于 2012-10-24T15:23:00.453 回答