我正在构建一个PhoneGap应用程序,目前已经设置了一些数据源,这些数据源具有我从中提取的JSON提要,用数据填充我的应用程序。现在,它只会在应用程序第一次运行时提取一次数据。
我想在每次应用首次打开时下载数据,然后如果它保持打开超过15分钟,它会再次更新。可以使用URL中的last_mod_day查询json提要,以便仅提取已更改的数据。
建议怎么做,以及如何在手机上检查WiFi /数据连接,如果没有,它会安静地失败?
以下是我当前获取Feed的功能的代码。
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。