Phonegap iOS 5.1和localStorage

时间:2012-03-12 09:20:12

标签: ios cordova release local-storage

我使用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);
    }
}

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

2 个答案:

答案 0 :(得分:23)

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

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

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

答案 1 :(得分: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发布版本的一部分;所以你必须手动应用补丁。