1

我的服务器端有多个表,我需要从中获取数据并将其存储在客户端Phonegap上,以便可以脱机访问。

我找到了 Lawnchair,但我找不到足够的文档来保存和更新多个表格。

还有WebSQL,但我相信它已被弃用。(如果我错了请纠正我)

仅当设备在线连接时,如何获取新数据/当前数据才能更新?!换句话说,任何操作都会对保存在设备上的数据进行。

4

2 回答 2

1

有几个 SQLite 插件,我已经成功使用了来自 Brodysoft 的插件: https ://github.com/litehelpers/Cordova-sqlite-storage

设备上线/下线时没有事件。有一个用于网络连接事件的插件(cordova-plugin-network-information)。您还可以在应用程序启动时同步,或者使用“立即同步”按钮/手势,以便用户可以按需同步。

于 2015-07-27T00:44:45.823 回答
0

您可以使用pouchdb

PouchDB 是一个受 Apache CouchDB 启发的开源 JavaScript 数据库,旨在在浏览器中良好运行。

那里的文档非常好,而且效果很好。

您可以使用它来复制/同步(双向)本地数据库和远程数据库

您始终可以禁用复制并自行管理它。

它可以与不同的适配器一起使用:

  • 本地存储
  • 索引数据库
  • WebSQL

它可以与 Cordova/PhoneGap 的 SQLite 插件一起使用。

Nic Raboy 在他的 youtube频道上创建了一个关于 pouchdb 的非常好的视频教程。

如果您想在您的应用上线时激活手动同步,您可以使用cordova-plugin-network-information

cordova plugin add cordova-plugin-network-information

连同来自ngCordovacordovaNetwork的 $插件。 您可以简单地拦截在线事件:

$rootScope.$on('$cordovaNetwork:online', function(event, networkState){

});

并采取行动。

于 2015-07-27T10:12:32.860 回答