android - 使用 Ionicframework 创建本地存储(设备,而非缓存)

标签 android ios cordova ionic-framework local-storage

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

在其他情况下,我需要我的数据在设备中保存很长一段时间。

我还有哪些其他解决方案?

最佳答案

HTML5 网络存储(即 localStorage)并不总是一个糟糕的选择。它是一种现成的键值存储,受到广泛支持。不,它没有完全存储在缓存中,即 localStorage 中的数据不会过期,也不会被随机删除。但它是一个有限且低优先级的存储,确切的细节因平台而异。

也就是说,我们有以下更可靠的替代方案,具体取决于您要存储的内容:

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

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

IndexedDB 在这里也值得一提。不是原生的移动解决方案,但这种 noSQL 存储正迅速成为大型可靠的浏览器端存储的标准,标志着 WebSQL 已过时。然而,iOS web View 对 IndexedDB (caniuse.com/#search=indexeddb) 的支持有问题且不完整

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

关于android - 使用 Ionicframework 创建本地存储(设备,而非缓存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38077713/

相关文章:

ios - 更新到 Xcode 5.1.1 导致 iOS 应用程序奇怪崩溃

android - 当我的 Activity 被推送到后台时调用 onDestroy 方法

android - 自定义偏好

Android网页开发问题

javascript - 使用javascript在Android中改变方向

ios - 如何将右附件按钮放在当前位置标注上?

ios - 在 Storyboard中添加新的 View Controller 后是否需要手动添加 ViewController.swift 文件?

java - 如何在ArrayList中存储选定的复选框值

android - Android Studio构建gradle

iphone - 通过单击 UITableViewCell 将 UIWebView 推送到 UINavigationController 后未加载