我的服务器端有多个表,我需要从中获取数据并将其存储在客户端Phonegap上,以便可以脱机访问。
我找到了 Lawnchair,但我找不到足够的文档来保存和更新多个表格。
还有WebSQL,但我相信它已被弃用。(如果我错了请纠正我)
仅当设备在线连接时,如何获取新数据/当前数据才能更新?!换句话说,任何操作都会对保存在设备上的数据进行。
有几个 SQLite 插件,我已经成功使用了来自 Brodysoft 的插件: https ://github.com/litehelpers/Cordova-sqlite-storage
设备上线/下线时没有事件。有一个用于网络连接事件的插件(cordova-plugin-network-information)。您还可以在应用程序启动时同步,或者使用“立即同步”按钮/手势,以便用户可以按需同步。
您可以使用pouchdb:
PouchDB 是一个受 Apache CouchDB 启发的开源 JavaScript 数据库,旨在在浏览器中良好运行。
那里的文档非常好,而且效果很好。
您可以使用它来复制/同步(双向)本地数据库和远程数据库。
您始终可以禁用复制并自行管理它。
它可以与不同的适配器一起使用:
它可以与 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){
});
并采取行动。