【问题标题】:Phonegap - Access data offline from databasePhonegap - 从数据库中离线访问数据
【发布时间】:2015-08-02 04:40:26
【问题描述】:

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

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

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

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

【问题讨论】:

  • Cordova 数据库插件? link

标签: html cordova web-sql lawnchair


【解决方案1】:

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

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

【讨论】:

  • 您不需要任何数据库插件,因为您仍然可以使用 WebSQL。
  • WebSQL 已弃用,可能会放弃支持。 Cordova 所针对的所有平台也不支持它。
【解决方案2】:

你可以使用pouchdb:

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

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

您可以使用它通过远程one 复制/同步(双向)本地数据库。

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

它可以与不同的adapters一起使用:

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

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

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

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

cordova plugin add cordova-plugin-network-information

与来自ngCordova 的$cordovaNetwork 插件一起使用。
您可以简单地拦截在线事件:

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

});

并采取行动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 2013-06-14
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多