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数据保存在文件系统的缓存目录中,并且缓存经常被操作系统清理(例如,当设备磁盘空间不足时)。
  • 不,更新应用程序不会清除本地存储。
  • 不,Safari本地存储和Webview本地存储是分开的。
  • 不,你无法控制它存储在文件系统上的什么位置。
  • 链接地址: http://www.djcxy.com/p/36801.html

    上一篇: iOS 7 webview and localStorage persistence

    下一篇: is localStorage on iPad Safari guaranteed to be persistent?