Android 如何在PhoneGap应用程序中计划数据同步,检索JSON
我正在构建一个PhoneGap应用程序,目前已经设置了一些数据源,这些数据源包含我从中提取的JSON提要,以便用数据填充我的应用程序。现在,它只在应用程序第一次运行时提取一次数据 我想在每次应用程序首次打开时下载数据,如果它保持打开状态超过15分钟,它会再次更新。可以使用URL中的最后一天来查询json提要,因此它只提取已更改的数据 建议采取什么措施,以及如何检查手机上的WiFi/数据连接,如果没有,它会悄无声息地出现故障 下面是获取提要的当前函数的代码Android 如何在PhoneGap应用程序中计划数据同步,检索JSON,android,ios,json,cordova,timer,Android,Ios,Json,Cordova,Timer,我正在构建一个PhoneGap应用程序,目前已经设置了一些数据源,这些数据源包含我从中提取的JSON提要,以便用数据填充我的应用程序。现在,它只在应用程序第一次运行时提取一次数据 我想在每次应用程序首次打开时下载数据,如果它保持打开状态超过15分钟,它会再次更新。可以使用URL中的最后一天来查询json提要,因此它只提取已更改的数据 建议采取什么措施,以及如何检查手机上的WiFi/数据连接,如果没有,它会悄无声息地出现故障 下面是获取提要的当前函数的代码 function downloadFil
function downloadFileError(evt) {
console.log('downloadFileError: ');
console.log(evt.target.error);
}
function downloadFile(ep) {
window.requestFileSystem(
LocalFileSystem.PERSISTENT,
0,
function onFileSystemSuccess(fileSystem) {
fileSystem.root.getFile("dummy.json", {
create: true,
exclusive: false
},
function gotFileEntry(fileEntry) {
var filename = cordova.file.dataDirectory + 'assets/json/' + ep + '.json';
var fileTransfer = new FileTransfer();
fileEntry.remove();
console.log('looking at ' + filename);
fileTransfer.download(
encodeURI("http://www.myURL.com/theApp?ep=" + ep),
filename,
function(theFile) {
console.log("download complete: " + theFile.toURL());
},
function(error) {
console.log("DLERR: src=" + error.source + " t=" + error.target);
}
);
},
function(evt) {
console.log(evt);
console.log('fn: ' + filename);
}
);
},
downloadFileError);
}
function downloadDynamicPages() {
var deferred = $.Deferred();
var pages = ['setOne','setTwo','setThree','setFour','setFive','setSix'];
var cnt = 0;
var total_pages = pages.length;
//checkConnection();
$.each(pages,function(k,v) {
console.log('looking at ' + v);
downloadFile(v);
cnt++;
if(cnt >= total_pages) {
deferred.resolve('all done with files');
}
});
return deferred.promise();
}
在这些问题的任何一个方面给予帮助都会对我有很大帮助。如果需要,我可以回答任何问题。谢谢Stack。我有类似的要求,但我使用Signalr,这样当服务器数据库中有任何新数据时,Signalr服务器会调用所有已登录的客户端,以便客户端可以立即获取新数据。如果客户端在此特定时刻处于脱机状态,几秒钟后,此客户端再次联机,则客户端将在信号器的“OnConnect”事件期间获取所有最新数据。感谢您的评论。我正在寻找一种方法来把它安排在一个时间表上。设置超时或类似的设置。