我们使用.manifest缓存机制开发了一个离线HTML5网络应用程序。一切都可以预见。
现在我们的一些客户抱怨说,经过长时间的离线使用后,缓存的数据突然消失了。事实证明 - 这是我的猜测 - iOS将缓存的文件存储在其/ CACHES /目录中,因为iOS 5.0可以在设备空间不足时进行清除。这可以随时发生,甚至不向用户发出警告。因此,脱机webapp不再正常运行。用户必须将设备重新连接到互联网并更新应用程序。
对于本机应用程序,通过将文件存储在/ DOCUMENTS / dir中,使用标记“不备份”来防止文件被清除(因为它们不在/ CACHES / dir中,并且不会备份到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/
有没有人经历过同样的事?这个问题有方法解决吗?目标是安装一次web应用程序,然后在没有'永久'连接的情况下运行它......
干杯,帕维
答案 0 :(得分:0)
在Safari中无法解决这个问题。永远不会认为缓存是永久性的。
如果您在原生应用中包含UIWebView,则可以在用户默认值中将WebKitStoreWebDataForBackup
设置为YES
。 (仅限iOS 6+)