离子本地存储不会持续存在

Posted

技术标签:

【中文标题】离子本地存储不会持续存在【英文标题】:Ionic localstorage doesn't persist 【发布时间】:2016-08-10 13:59:20 【问题描述】:

我正在使用本地存储在 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/

本地存储有点糟糕,通常被认为是 不可靠。我认为浏览器本地存储是可行的 选项,它相当稳定和可靠,但是,它是可能的 对于要擦除的数据,这意味着对于很多应用程序来说 不会是一个很好的选择。

这有什么解释吗?

【问题讨论】:

也许这就是 Ionic 2 使用 SqlStorage 的原因:ionicframework.com/docs/v2/api/platform/storage/SqlStorage @Akis_Tfs 不幸的是,我有一个用离子和角度 1.x 编写的应用程序 【参考方案1】:

在探索了 ionic 中本地存储问题的用法后,我可以说一件事:

请勿使用它,如果您需要保留您的数据!

我决定使用 PouchDB 来保持我的数据持久性。

来自Ashteya Biharisingh post:

保存在 localStorage 中的数据应该是持久化的 即使您关闭应用程序或关闭手机。在大多数情况下,这 可以,但是 iOS 和 Android 的管理方式存在问题 设备上的 localStorage。

iOS 在 iOS 8 上,localStorage 有时会在内存不足时被清除,您可以在此处阅读。

我最近在我正在开发的一个 Ionic 应用程序上亲身体验了它。一世 在我的 iPhone 上收到一条通知,说它内存不足,并且 当我打开应用程序时,localStorage 是空的。我有另一个应用程序 在我也使用 localStorage 的设备上,但那个不是 清除。

Android 我没有在 Android 上对此进行过广泛的测试,但是如果您阅读了这个帖子,您会发现有几个报告表明 localStorage 无法按预期工作。

你可以遵循一个很好的指南here

【讨论】:

以上是关于离子本地存储不会持续存在的主要内容,如果未能解决你的问题,请参考以下文章

适合 Ionic 3 的本地存储

cookie本地存储

Blazor webassembly pwa 会话存储在部署到 Azure 后不持久

离子存储将预期数组作为字符串返回

【知识】浏览器的LocalStorage本地存储入门

本地存储和云存储之间的区别