我只是想知道这是否可行以及如何做到这一点。
假设Android用户拥有网络连接并进行更改,然后更新数据库。然后用户失去网络连接但仍然在他们的设备上进行更改。他们无法在没有连接的情况下将数据发送到数据库。
但是当他们再次收到连接时,他们在没有连接时所做的更改会自动更新并发送到数据库。我将如何使用Ionic 2框架做这样的事情?请指出我正确的方向。
谢谢!
答案 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);
});
}
如果您需要更多细节,我就在这里。