我正在使用本地存储来存储Ionic中的数据 我的问题是本地存储不会像在Web上那样持久存在。
在iOS上,本地存储每隔几天就被删除一次,而在Android上则更糟糕,在某些设备上,本地存储就像会话存储一样,在应用关闭时被擦除。
这是我的本地存储服务:
angular.module('app.core')
.factory('localstorage', ['$window', function ($window) {
return {
setObject: function (key, value) {
$window.localStorage[key] = JSON.stringify(value);
},
getObject: function (key) {
return JSON.parse($window.localStorage[key] || null);
}
}
}]);
我读过这篇文章:http://www.joshmorony.com/a-summary-of-local-storage-options-for-phonegap-applications/
本地存储有点糟糕,并且通常被认为是 不可靠。我认为浏览器本地存储可行 选项,它相当稳定和可靠,但是,它是可能的 对于要擦除的数据,这意味着它适用于很多应用程序 不会是一个很好的选择。
对此有任何解释吗?
答案 0 :(得分:3)
在探索了离子的本地存储问题后,我可以说一件事:
如果您需要保留数据,请勿使用!
我决定使用 PouchDB 来保持我的数据持久性。
应该保留localStorage中保存的数据 即使您关闭应用程序或关闭手机。在大多数情况下这个 会有效,但iOS和Android管理方式存在问题 设备上的localStorage。
<强>的iOS 强>
在iOS 8上,localStorage有时会在内存不足时被清除,你可以在这里阅读。我最近在我正在研究的Ionic应用程序上体验过它。一世 在我的iPhone上收到通知它内存不足的通知 当我打开应用程序时,localStorage是空的。我有另一个应用程序 在我的设备上也使用localStorage,但那个不是 清零。
<强>的Android 强>
我没有在Android上对此进行过广泛的测试,但如果您阅读此主题,您会看到有几个报告称localStorage无法按预期工作。
你可以按照一个很好的指南here