我正在Cordova中构建移动应用程序。并且需要保存用户数据。
当用户没有互联网连接时,数据将在本地保存。连接到互联网时,它应与在线数据库同步。 设备:Windows Phone,Android,iOS。
我读过有关CouchDB和PouchDB的文章。现在我无法理解以下内容: iOS仅适用于WebSQL,Windows仅适用于IndexedDB,Android适用于两者。 如何同步WebSQL和IndexedDB,以便可以在iOS上显示从Windows手机插入的数据?
答案 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。如果您在意,请查看IndexedDB和WebSQL的caniuse。
如果要求在每个操作系统上使用相同的底层数据库,则可能需要使用带有相应适配器的SQLite数据库,如Dave所述。