如何在PhoneGap应用程序中安排数据同步,检索JSON

时间:2015-06-28 10:09:24

标签: android ios json cordova timer

我正在构建一个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。

0 个答案:

没有答案