我们开发了一个使用.manifest缓存机制的离线HTML5 web应用程序。一切都像预期的那样工作。
现在我们的一些客户抱怨说,在长时间的离线使用后,缓存的数据突然消失了。事实证明--这是我的猜测--缓存存储在它的/ iOS /目录中,从iOS 5.0开始,如果设备空间不足,这个目录可以被清除。这可以在任何时候发生,甚至不会向用户发出警告。因此,离线webapp不再正常运行。用户必须将设备重新连接到互联网并更新应用程序。
对于本地应用程序,这个问题可以通过将文件存储在/DOCUMENTS/ dir中来解决,使用'do not backup‘标志来防止文件被清除(因为它们不在/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-app,然后在没有连接的情况下‘永远’运行它。
干杯,爪牙
发布于 2012-10-24 23:23:00
在Safari中没有办法绕过这一点。缓存永远不会被认为是永久性的。
如果你在原生应用中有一个UIWebView,你可以在你的用户默认设置中将WebKitStoreWebDataForBackup设置为YES。(仅限iOS 6+ )
https://stackoverflow.com/questions/13048520
复制相似问题