android - 从 IndexedDB 和 webSQL 从 Cordova 同步数据

标签 android ios windows cordova pouchdb

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

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

我读过 CouchDB 和 PouchDB。现在我无法理解以下内容: iOS 只能与 WebSQL 一起使用,Windows 只能与 IndexedDB 一起使用,而 Android 则两者都可以。 如何同步 WebSQL 和 IndexedDB,以便在 iOS 上显示从 Windows Phone 插入的数据?

最佳答案

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

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

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

关于android - 从 IndexedDB 和 webSQL 从 Cordova 同步数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41504007/

相关文章:

Android Fused Location API 在 onLocationChanged 中提供不准确的位置

java - 如何解决,JSONException : No value for "1"

android - 创建 Intent 的最佳实践

ios - iOS 默认使用脏区域吗?

ios - MKMapView 在 LocationManager 获取用户位置之前加载 - 无法将区域设置为以用户位置为中心

windows - 我必须在 CComPtr 对象上调用 Release() 方法吗?

python - 为什么 Python 的 unittest 在 WSL bash 中给出 "ImportError: Import by filename is not supported."?

javascript - Android 上的 sessionStorage 意外清理

ios - 有没有办法在 ios 的 uiwebview 中跟踪单个资源的加载

windows - WSL 可以继承 Windows 身份验证凭据吗