2012-12-09 33 views
0

我正在使用Phonegap開發我的應用。我使用Backbone.js來實現我的邏輯。我從服務器獲取XML文件並在我的應用程序中使用這些數據。這是負責它的代碼:用Phonegap應用捆綁文件

var CategoryCollection = Backbone.Collection.extend({ 
    url:'http://www.someServer/someFile.xml', 
    fetch: function(options) { 
    options || (options = {}); 
    options.dataType = 'xml'; 
    Backbone.Collection.prototype.fetch.call(this, options); 
    }, 
    parse: function(data) { 
    return $(data).find('someTag').map(function() { 
     return { 
     code:$(this).attr('code'), 
     title : $(this).attr('title'), 
     value : innerHtml 
     }; 
    }).get(); 
    } 
}); 

不過,我需要找到一種方法,使當地在安裝時可用此XML數據,而不需要連接到互聯網。這是一款面向遊客的應用程序,當他們在家時可以下載應用程序,但只有在他們離開家時才能運行,而無需互聯網連接。

所以我想使用PhoneGap File API,但我很難理解它是如何工作的,以及我可以在何處放置文件以在第一次運行應用程序時訪問它們。

此外,我想應用程序更新本地存儲的XML,如果用戶有互聯網,並且應用程序檢測到服務器具有更新版本的XML文件。

我接受任何類型的解決方案,如localStorage或其他。

我真的很感激一些建議!

問候。

回答

1

您應該可以將xml文件放在phonegap應用程序的資產文件夾中,並訪問它,就好像您使用相對路徑訪問任何網絡資產(即:someFile.xml而不是http://www.someServer/someFile.xml)。

+0

是的,沒錯,但據我瞭解,我無法更新放置在資產文件夾中的文件。它是隻讀的: – GeRyCh

+1

是的,這是正確的,你不能寫入資產文件夾,但你要做的是檢查文件是否存在使用File API。如果它不使用XHR加載XML,然後使用File API將它寫入到你需要的位置,然後你將從本地文件系統加載文件,並且仍然可以通過從互聯網上下載一個新文件來更新它。 –