【问题标题】:sync data from Cordova from IndexedDB and webSQL从 IndexedDB 和 webSQL 同步来自 Cordova 的数据
【发布时间】:2017-05-21 02:47:24
【问题描述】:

我正在 Cordova 中构建一个移动应用程序。并且需要保存用户数据。

当用户没有互联网连接时,数据将保存在本地。当连接到互联网时,它应该与在线数据库同步。 设备:Windows Phone、Android、iOS。

我读过 CouchDB 和 PouchDB。现在我很难理解以下内容: iOS 仅适用于 WebSQL,Windows 仅适用于 IndexedDB,而 Android 则适用于两者。 如何同步 WebSQL 和 IndexedDB,以便从 windows phone 插入的数据可以显示在 iOS 上?

【问题讨论】:

    标签: android ios windows cordova pouchdb


    【解决方案1】:

    您不必担心底层数据库。您将始终在 PouchDB 或 CouchDB 中使用 JSON 文档(如 docs 中所述)。您将在任何操作系统上存储 JSON 文档,同步到另一个操作系统并从那里的同步数据库中获取 JSON 文档。

    可能导致您难以理解的是 PouchDB 如何在内部保存这些 JSON 文档。 PouchDB 本身不是数据库,它使用其他数据库来存储它的数据 (taken from the docs)。根据您运行的浏览器,可以使用 IndexedDB、WebSQL 或两者。请参阅移动图表here。 Safari 只支持 WebSQL,Internet Explorer Mobile 只支持 IndexedDB,Chrome 都支持。如果您关心,请查看 IndexedDBWebSQL 的 caniuse。

    如果需要在每个操作系统上使用相同的底层数据库,您可能希望使用 SQLite 数据库和 Dave 提到的相应适配器。

    【讨论】:

    • 感谢您的解释!
    【解决方案2】:

    如果您使用cordova-sqlite-storage 插件,您将拥有一个具有无限存储空间的原生 SQLite DB(与 WebView 中的 WebSQL/IndexedDB 不同)和一个通用的类似 WebSQL 的界面,可在您的所有目标平台上运行。

    然后您可以使用PouchDB adapter 来提供 PouchDB 接口。

    【讨论】:

      猜你喜欢
      • 2012-04-19
      • 1970-01-01
      • 2011-09-01
      • 2011-03-10
      • 1970-01-01
      • 2016-10-21
      • 2016-03-31
      • 2015-12-31
      • 1970-01-01
      相关资源
      最近更新 更多