在cordova/ionic 2应用程序中使用哪个数据库才能完全多平台?

Posted

技术标签:

【中文标题】在cordova/ionic 2应用程序中使用哪个数据库才能完全多平台?【英文标题】:Which database to use in a cordova/ionic 2 app in order to be fully multi-platform? 【发布时间】:2017-11-14 23:44:21 【问题描述】:

我正在构建这个应用程序,它必须在移动和桌面浏览器上可用。

在移动端选择 SQLite 很容易,但是 cordova s​​qlite 插件仍然不支持浏览器。 Ionic Local Storage 不支持比键值对更复杂的数据,并且数据可能存储在易失性位置。 Pouch/Couch db 似乎没有得到很好的支持,并且与多个客户端一起工作不好。

是否存在所有平台通用的数据库解决方案,或者数据存储必须在不同平台上使用不同的解决方案来实现?

【问题讨论】:

【参考方案1】:

我会将Lawnchair 与an adapter 一起用于移动设备的the native SQLite plugin,然后让它回退到WebSQL 或浏览器的IndexedDB。

虽然移动设备和浏览器的底层存储机制可能不同,但 Lawnchair 为您提供了一致的 API,这才是最重要的。

【讨论】:

不错!最后一次重要更新可以追溯到 3 年前github.com/brianleroux/lawnchair。这让我有点害怕,但是,如果你建议它,我想它仍然是一个好产品。【参考方案2】:

管理类似数据库的复杂 json 数据的解决方案可以使用提供的 LocalStorage 转换和返回数据,如您需要,如 tommerton 建议 here 引用:

使用 Ionic2 的 api 中的 Storage 对象和 Sqlstorage

从 'ionic-framework/ionic' 导入 Storage, SqlStorage ; this.storage = new Storage(SqlStorage);

this.storage.get('问卷').then((数据) => 如果(数据!= null) this.questionnaires = JSON.parse(data); 别的 this.loadDefaultQuestions();

要存储对象,请使用 JSON.stringify(myObject) 存储和 JSON.parse(...) 返回

【讨论】:

以上是关于在cordova/ionic 2应用程序中使用哪个数据库才能完全多平台?的主要内容,如果未能解决你的问题,请参考以下文章

我想利用ionic,cordova,angularjs来制作一个简单的app应用,想知道具体该如何开始,能在浏览器测试就好

每次使用 google auth、Cordova + ionic 2 都提示同意

Ionic 3是否可靠生产? [关闭]

Cordova (Ionic) : Splashscreen 只能在 Android 上运行一次

Cordova + Ionic - 将标头混合到 iOS 标头中

用于智能电视的 Cordova/ionic 应用程序