我正在使用PhoneGap构建混合应用程序.它需要在iOS上运行.我有些困惑,希望有人能帮上忙.
我在导航中使用localStorage.
我的应用程序有不同的章节,我正在重用UI.
<a href="chapter.html" data-ajax="false" onClick="localStorage.setItem('chapter', '1')" class="ui-btn">Chapter 1</a>
当您单击url时,它将从localStorage获取该章节并知道要获取的内容.
var chapter = localStorage.getItem('chapter');
我的要求
只要用户正在使用该应用程序,localStorage仅需要保持不变.
没关系,如果在用户关闭应用程序时localStorage丢失了.
但是,当他使用该应用程序时,他应该有权访问localStorage.为了获得正确的内容,您需要从localStorage中获得的nr章节.
我很困惑.
在cordava网站上说明了这一点.
iOS将localStorage数据存储在需要空间时可由OS清除的位置.
我的问题
当用户仍在使用该应用程序时,可能会发生这种情况吗?
我不希望他在导航到新页面以及由于localStorage丢失而获取错误数据的过程中.
改用sessionStorage会更好吗?
我真正想做的就是将第nr章发送到新页面,以便获取正确的内容. (将信息发送到新页面)
使用localStorage和sessionStorage是执行此操作的正确方法吗?
如果有更好的方法,请告诉我.
提前致谢.
解决方法:
您可以使用cordova-plugin-nativestorage.(npm link)
在您提到的storage page中,他们已指定使用其他插件,因为LocalStorage是非持久性的.此外,这里提到的其他方法(例如WebSQL
、IndexedDB
)都不适合您的要求.
该插件使用Android中的SharedPreferences和iOS中的NSUserDefaults.因此,存储的变量值将保持不变,直到卸载该应用程序为止.