Phonegap iOS 5.1 和 localStorage
Posted
技术标签:
【中文标题】Phonegap iOS 5.1 和 localStorage【英文标题】:Phonegap iOS 5.1 and 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);
但是当我关闭应用程序时,值并没有保存。
【问题讨论】:
【参考方案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 现在会随着补丁继续存在吗?以上是关于Phonegap iOS 5.1 和 localStorage的主要内容,如果未能解决你的问题,请参考以下文章
如何防止meteor.local的负载(使用phonegap构建ios应用程序时)
在适用于 iOS 的 Cordova / PhoneGap 应用程序上修改用户代理字符串
参考错误:找不到变量:ChildBrowser、Cordova 1.7.0、jQueryMobile 1.0.1、iOS 5.1
Cordova Local Notification 为 iOS 和 Android 播放本地声音
为啥 cordova-local-notification-plugin 不起作用(Phonegap,Android)?