从IndexedDB和webSQL同步Cordova中的数据

时间:2017-01-06 10:48:02

标签: android ios windows cordova pouchdb

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

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

我读过有关CouchDB和PouchDB的文章。现在我无法理解以下内容: iOS仅适用于WebSQL,Windows仅适用于IndexedDB,Android适用于两者。 如何同步WebSQL和IndexedDB,以便可以在iOS上显示从Windows手机插入的数据?

2 个答案:

答案 0 :(得分:1)

如果您使用cordova-sqlite-storage插件,您将拥有一个具有无限存储空间的本机SQLite数据库(与WebView中的WebSQL / IndexedDB不同)和一个可在所有目标平台上运行的类似WebSQL的通用接口。 / p>

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

答案 1 :(得分: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所述。