LocalStorage 在带有 os 10 的 iphone/ipad 中无法正常工作
Posted
技术标签:
【中文标题】LocalStorage 在带有 os 10 的 iphone/ipad 中无法正常工作【英文标题】:LocalStorage is not working as expected in iphone/ipad with os 10 【发布时间】:2017-08-25 09:25:32 【问题描述】:我在 iphone/Ipad 操作系统版本为 10 及更高版本时遇到本地存储问题。
场景是这样的。
当我第一次打开应用程序时,本地存储键值为 null 。那时我正在为相应的键赋值。
当我第二次打开应用程序时,localStorage 键仍然为空,再次将值分配给相应的键。
当我第三次打开应用程序时,我从 localStorage 获得价值。如果我重复上述步骤 no.of time ,每次我都能从本地存储中获得价值。
这里的问题是第二次出现在 localStorage 上。
以下是我正在使用的技术 IBM 移动优先 V7.1 科尔多瓦 V3.7 Ionic V1.2.4 和 angular 1.4
请在下面的示例代码中找到在 iphone 和 ipad 中运行良好的 os 9(低于 10)
if(localStorage && $window.localStorage.getItem("isFirst") == "first")
alert("Data available");
else
alert("LocalStorage is empty");
$window.localStorage.setItem("isFirst", "first");
得到“数据可用”两次而不是一次。
【问题讨论】:
可能是您正在清除您的应用数据,这就是为什么 localstorage 值可能会产生空值。 您能否编辑您的帖子以包含一些示例代码? @ Talentandrew,我们不会清除应用数据。如前所述,它正在第三次工作。 关注此链接***.com/questions/9948284/… 【参考方案1】:众所周知,ios 上的 LocalStorage 是不可预测的。重新启动应用程序(甚至没有 Cordova 或 MFP)时,某些 LocalStorage 会被删除,而有些则不会。当设备内存不足时,iOS 可能会擦除 LocalStorage。但这并不是 iOS 10 特有的。
这不是 MFP 或 Cordova 的问题,它可能正是 iOS 的工作原理。
要可靠地保存数据并使用加密,您可以使用 JSONStore。更多细节在这里:
1) JSONStore Tutorial
2) Overview
【讨论】:
我们只在 ios 10 中遇到这个问题,在 os 10 以下的验证次数没有重现。 如果在我的情况下 localstorage 的“内存不足”问题是在第二次尝试后写入,这不应该发生,对吗?? 内存不足是何时清除的一个示例。您正在处理 html5 存储,而这不是由 MFP 或 Cordova 处理的。该行为取决于 Webview/HTML5 引擎,无法在您的 /MFP 代码中进行控制。如果您想要持久性,请使用 JSONStore。 我们已经尝试过了,但是 JSONStore 集合的初始化在加载应用程序时需要一些时间 @RavaliAbboju,这是一个不同的讨论,jsonstore初始化应该在应用程序加载之后。你的收藏有多大?以上是关于LocalStorage 在带有 os 10 的 iphone/ipad 中无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
带有 chrome 扩展的 cookie 或 localStorage
带有 chrome 扩展的 cookie 或 localStorage
有没有简单的方法在带有 mamp 的 MAC OS 10.8 上安装 mytop?
带有 localStorage 的 jQuery 图片上传器。部分工作。默认图片不显示