当网络不存在时,Ionic 2数据重新加载

时间:2017-06-03 20:21:10

标签: javascript android angular ionic-framework ionic2

我只是想知道这是否可行以及如何做到这一点。

假设Android用户拥有网络连接并进行更改,然后更新数据库。然后用户失去网络连接但仍然在他们的设备上进行更改。他们无法在没有连接的情况下将数据发送到数据库。

但是当他们再次收到连接时,他们在没有连接时所做的更改会自动更新并发送到数据库。我将如何使用Ionic 2框架做这样的事情?请指出我正确的方向。

谢谢!

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。

为此你需要SQLite。最好制作一个SQLite服务。

在第一阶段,最重要的是将数据保存到离线/本地数据库。在这种情况下,这是SQlite。

当没有网络连接且用户进行某些操作时,将数据保存到SQlite数据库中创建的表。

 finishFunction(){
   if(this._connectivityService.isOnline()){ 
     //Send data directly to external database
      this._api.sendData(this.parameters).subscribe(res => {
    }); 
   } else {
    //Store data in offline SQLite database
    this._database.myOfflineTable(this.parameters);
   }
 }

之后,在app主页检查网络连接何时可用,并调用通过API将本地/离线数据发送到外部数据库的功能。当API返回成功消息时,您可以清空脱机表。

sendMyOfflineData(){
     this._database.getOfflineTable().then((result) => {
            this.OfflineTableList = <Array<Object>> result;
            if(this.OfflineTable.length != 0){
            for(var i = 0; i < this.OfflineTable.length; i++){
              this._api.sendData(this.OfflineTable[i]).subscribe(res => {
              if(res.status == true){
                 this._database.deleteOfflineTable();
              }
         }); 
            }}
        }, (error) => {
            console.log("ERROR: ", error);
        });
   }

如果您需要更多细节,我就在这里。