Phonegap iOS 5.1和localStorage

che*_*xis 17 release local-storage ios cordova

我使用localstorage在我的应用程序中保存一个值,与PhoneGap一起使用,但是当Apple发布新的iOS 5.1时,我的应用程序现在不保存该值.

有人知道如何解决这个问题吗?

非常感谢你!!!

编辑:我把我正在使用的代码:

window.localStorage.setItem("login", $('#login').val());

我用它来保存值,我用它来读取值:

function onDeviceReady() {
    var login = window.localStorage.getItem("login");

    if (login != null) {
        $('#login').val(login);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我关闭应用程序时,值不会保存.

Dre*_*man 23

在phonegap组中有一个大线程讨论了这个问题.基本上是因为它们现在将localStorage视为临时项目,可以随时删除.在工作中,不要害怕有很聪明的人!

这是主题 - https://groups.google.com/forum/?fromgroups#!topic/phonegap/RJC2qA9sDnw

这是代码 - http://pastebin.com/5881768B


Lak*_*sad 8

在iOS 5中,默认情况下,localstorage是由Apple持久化的.在iOS 5.1中,localstorage成为一个临时文件夹,只要存储受到限制,操作系统就可以删除它.在iOS 6中,localstorage是一个可选的持久性文件夹,在该设置中带有一个标志.

Phonegap 2.0针对iOS 5.1并提供了一种插件机制来提供持久性,即使iOS没有.

使用iOS 6和phonegap 2.1时,只有当iOS版本为5.1并且回退到iOS本机机制以持久保存文件夹时才尝试使用该插件.

但是这个修复程序存在一个错误,在iOS 6上,localstorage文件夹第一次被删除,数据被存储:https://issues.apache.org/jira/browse/CB-1535 错误报告也有补丁; 但它尚未安排成为任何PhoneGap发布版本的一部分; 所以你必须手动应用补丁.