【问题标题】:Phonegap iOS 5.1 and localStoragePhonegap iOS 5.1 和 localStorage
【发布时间】:2012-03-28 16:40:07
【问题描述】:

我在我的应用程序中使用 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);
    }
}

但是当我关闭应用程序时,值并没有保存。

【问题讨论】:

    标签: ios cordova release local-storage


    【解决方案1】:

    phonegap 组里有一个大线程在讨论这个问题。基本上是因为他们现在将 localStorage 视为可以随时删除的临时项目。永远不要担心工作中有非常聪明的人!

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

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

    【讨论】:

    • @ScottC 是的。该补丁已添加到 3.0,因此您真的不需要再做太多了。
    【解决方案2】:

    在 iOS 5 中,本地存储默认是由 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 发布版本的一部分;所以你必须手动应用补丁。

    【讨论】:

    • 即使用户使用的是 iOS 5.1,在最新版本的 PhoneGap 中使用这是否可以接受? LocalStorage 现在会随着补丁继续存在吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 2013-09-22
    • 1970-01-01
    相关资源
    最近更新 更多