Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Phonegap应用程序-iOS上的本地存储(需要澄清)_Javascript_Ios_Cordova_Local Storage_Phonegap - Fatal编程技术网

Javascript Phonegap应用程序-iOS上的本地存储(需要澄清)

Javascript Phonegap应用程序-iOS上的本地存储(需要澄清),javascript,ios,cordova,local-storage,phonegap,Javascript,Ios,Cordova,Local Storage,Phonegap,我正在使用PhoneGap构建一个混合应用程序。它需要在iOS上运行。我有点困惑,希望有人能帮助我 我在导航中使用localStorage。 我的应用程序有不同的章节,我正在重用UI <a href="chapter.html" data-ajax="false" onClick="localStorage.setItem('chapter', '1')" class="ui-btn">Chapter 1</a> 我的要求 localStorage只需要在用户使用应用程

我正在使用PhoneGap构建一个混合应用程序。它需要在iOS上运行。我有点困惑,希望有人能帮助我

我在导航中使用localStorage。 我的应用程序有不同的章节,我正在重用UI

<a href="chapter.html" data-ajax="false" onClick="localStorage.setItem('chapter', '1')" class="ui-btn">Chapter 1</a>
我的要求
localStorage只需要在用户使用应用程序时保持持久性。
当用户关闭应用程序时,如果本地存储丢失,这没关系

但当他使用该应用程序时,他应该可以访问本地存储。要获得正确的内容,您需要从localStorage获得的章节编号

我对什么感到困惑
在cordava网站上,它指出了这一点。
iOS将本地存储数据存储在一个位置,当需要空间时,操作系统可能会清除该位置

我的问题
当用户仍在使用该应用程序时,是否会发生这种情况? 我不希望他处于导航到新页面的中间,并且因为本地存储丢失而获得错误数据。

使用sessionStorage会更好吗

我真正想做的就是将章节nr发送到新页面,以便获取正确的内容。(将信息发送到新页面)

使用localStorage和sessionStorage是正确的方法吗

如果有更好的办法,请告诉我

提前感谢。

您可以使用。()

在您提到的中,他们指定使用其他插件,因为
LocalStorage
非持久性的。另外,这里提到的其他方法中没有一种符合您的要求

该插件在Android中使用
SharedReferences
,在iOS中使用
NSUserDefaults
。因此,在卸载应用程序之前,存储的变量值是持久的。:)

这就是为什么,开发者声称,这个插件是开发出来的。看看原因

另请参见使用和不使用插件。

目前(2019年3月),cordova插件nativestorage已经8个月没有更新了,所以我最终选择了。这是另一个可靠的跨平台选项,也是目前最活跃的选项

为了回答您关于事件发生的问题,我相信这可能发生在用户使用应用程序时,因为它是独立于任何用户行为清除数据的,但我还无法确认这一点

我可能偶然发现了一种阻止iOS清除本地存储的方法。我不确定我是否愿意依赖此功能来实现数据持久性,但我仍在努力追踪这一点,欢迎对此发表评论

var chapter = localStorage.getItem('chapter');