使用Ionicframework创建本地存储(设备,而不是缓存)

时间:2016-06-28 13:33:44

标签: android ios cordova ionic-framework local-storage

我正在使用与cordova一起运行的离子框架开发应用程序,这也需要我在用户的设备(Android / iOS)本地存储(例如SD)中保存一些数据,我无法使用localStorage保存它离子框架,因为它将数据保存在缓存中。

在其他方面,我需要将我的数据长时间保存在设备中。

我还有其他解决方案吗?

1 个答案:

答案 0 :(得分:1)

HTML5 网络存储空间(即localStorage)并不总是一个糟糕的选择。它是一种广泛支持的随时可用的密钥值存储。不,它不是完全存储在缓存中,即localStorage中的数据不会到期,也不会被随机删除。但这是一个有限且低优先级的存储,具体细节因平台而异。

尽管如此,我们还有以下更可靠的替代方案,具体取决于您要存储的内容:

  1. 原生SQLite - 作为Cordova应用程序,您的应用程序可以通过第三方SQLite Plugin创建和使用本机SQLite数据库,就像本机移动应用程序一样。从JavaScript中,您可以像访问Cordova外部的WebSQL一样访问您的数据。 Ionic / ngCordova通过在SQLite插件周围提供实用程序包装来帮助:$ cordovaSQLite

  2. 原生文件系统 - 作为Cordova应用程序,您的应用程序可以通过标准File Plugin访问本地文件存储(也可以访问Android中的SD卡,如果用户已存储应用程序容器的位置)。同样,Ionic提供了一个实用的包装器,它有许多有用的功能:$ cordovaFile(check ngcordova.com/docs/plugins /)

  3. IndexedDB在这里也值得一提。不是本机移动解决方案,但是这个noSQL存储正迅速成为大型可靠浏览器端存储的标准,标志着WebSQL已经过时。但是,iOS Web视图存在错误且不完整的IndexedDB支持(caniuse.com/#search=indexeddb)

    根据您要存储的数据选择解决方案。为了存储应用程序数据,我使用Native SQLite(用于结构化数据)和localStorage(用于键值数据,主要是UI首选项)的组合。对于存储资源,总是存在FileSystem。