iOS 7的webview和localStorage持久性
我正在开发使用PhoneGap / Cordova的混合应用程序(仅适用于iOS和Android),并希望使用HTML5 localStorage来存储用于脱机访问的内容。
http://caniuse.com/#search=local存储说:“在iOS 5和6本地存储数据存储在一个位置,有时可能会被操作系统清除。”
-
iOS 7(及更高版本)webview有什么情况,localStorage会在什么情况下持续存在,或被操作系统或用户清除?
-
将更新的应用程序清除localStorage?
-
怎么样的用户清除浏览器的Safari浏览器的历史logging – 也将适用于Web视图?
-
我是否需要担心(或者我可以控制)localStorage在fils系统上的创build位置。 我知道它不应该备份在iCloud上。
我有一个设备(iPad),并检查文件系统,我看到localStorage文件在应用程序沙箱内的〜/ Library / Caches中,请参阅下图。
从文档:
https://developer.apple.com/icloud/documentation/data-storage/index.html可以再次下载或重新下载的数据应该存储在/ Library / Caches目录中。 您应该放入Caches目录中的文件示例包括数据库caching文件和可下载的内容,例如杂志,报纸和地图应用程序使用的文件。
我只是这样做,以设置数据:
localStorage.setItem('foo','this is the FOO value'); localStorage.setItem('bar','and this is the BAR value');
如果你使用的是cordova,那么这个问题在很久以前就已经修复了,即使是iOS 5和iOS 6也是如此。如果你使用的是最新版本的cordova,那么不用担心。
如果您仍然遇到Cordova-iOS v4的问题,请尝试使用NativeStorage插件。 https://www.npmjs.com/package/cordova-plugin-nativestorage 。
它已经设置,放置并获得了实现android共享偏好和iOS NSUserDefaults这样的平台function的function,这使得数据存储安全性得到了允许。
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>);
正如其他人所说,我认为你最好的select是使用NativeStorage插件:
https://www.npmjs.com/package/cordova-plugin-nativestorage
回答你的问题:
-
localStorage
数据保存在文件系统的caching目录中,并且caching经常被操作系统清理(例如,当磁盘空间不足时)。 - 不,不是自动的(但也许是因为上面1)的原因。
- 不,他们是分开的。
- 不,不幸的是,我不知道。