目标如下:
一位农民拿着一部智能手机走进他的谷仓,用该应用程序进行盘点。有时,他的手机在谷仓里无法连接互联网,因此该应用程序需要离线工作,离线存储数据,然后在重新连接后将其同步到云端。
农民还应该只登录并注册一次应用程序,然后每次打开应用程序时,它都应该打开主屏幕,不再询问登录信息。这究竟是怎么做到的?
我正在使用Meteor制作应用程序,Meteor内置于Cordova来打包该应用程序。我看过GroundDB:https://github.com/GroundMeteor/db
据我在文档中所知,我知道如何创建本地集合并使用collection.insert向该集合添加数据。
但我不知道如何在不需要互联网的情况下对应用程序进行编码以在手机上打开,并检测是否存在互联网?
那么我该如何检测互联网是否恢复,然后同步离线模式下存储的所有数据?
如果有人能帮助说明这将如何工作,我们将不胜感激!
对于Meteor,您应该使用Meteor.status((返回以下形式的对象:
对象{状态:"已连接",已连接:true,重试计数:0}
如果您丢失了连接,那么connected将明显为false。
它比jQuery或cordova方法更好,因为它将处理与流星服务器的连接丢失,从而不仅处理互联网状态,还处理服务器或网络故障。
使用这样的代码来检测离线/在线
jQuery(window).on('offline', function (e) {
console.log('offline');
}).on('online', function (e) {
console.log('online');
});
你也可以把它和这个插件结合起来https://github.com/apache/cordova-plugin-network-information/blob/master/doc/index.md以在需要时确定关于网络状态的更多信息。