iOS 7 webview和localStorage持久性
我正在开发使用PhoneGap / Cordova的混合应用程序(仅适用于iOS和Android),并且希望使用HTML5 localStorage来存储用于脱机访问的内容。
http://caniuse.com/#search=localStorage说 - “在iOS 5和6中,本地存储数据存储在一个可能偶尔被操作系统清除的位置。”
iOS 7(及更高版本)webview有什么情况,localStorage会在什么情况下持续存在,或被操作系统或用户清除?
将更新的应用程序清除localStorage?
那么Safari上的用户清除浏览器历史记录会如何呢?是否也适用于webview呢?
我是否需要担心(或者我可以控制)localStorage在fils系统上的创建位置。 我知道它不应该备份在iCloud上。
我有一台设备(iPad)并检查文件系统,我发现localStorage文件位于应用程序沙箱中的〜/ Library / Caches中,请参阅下图。
从文档:
https://developer.apple.com/icloud/documentation/data-storage/index.html可以再次下载或重新下载的数据应该存储在/ Library / Caches目录中。 您应该放入Caches目录中的文件示例包括数据库缓存文件和可下载内容(如杂志,报纸和地图应用程序使用的内容)。
我只是这样做来设置数据:
localStorage.setItem('foo','this is the FOO value');
localStorage.setItem('bar','and this is the BAR value');
如果你使用的是科尔多瓦,那么这个问题很早以前就已经解决了,即使对于iOS 5和iOS 6也是如此。如果你使用的是最新版本的科尔多瓦,你不应该担心。
如果您仍然遇到Cordova-iOS v4的问题,请尝试使用NativeStorage插件。 https://www.npmjs.com/package/cordova-plugin-nativestorage。
它设置,放置并获取实现了android共享首选项和iOS NSUserDefaults等平台功能的功能,这些功能使数据存储尽可能安全。
cordova plugin add cordova-plugin-nativestorage
NativeStorage.putObject("reference_to_value",<object>, <success-callback>, <error-callback>);
NativeStorage.getObject("reference_to_value",<success-callback>, <error-callback>);
你最好的选择是使用NativeStorage插件:
https://www.npmjs.com/package/cordova-plugin-nativestorage
回答你的问题:
localStorage
数据保存在文件系统的缓存目录中,并且缓存经常被操作系统清理(例如,当设备磁盘空间不足时)。 上一篇: iOS 7 webview and localStorage persistence
下一篇: is localStorage on iPad Safari guaranteed to be persistent?