2012-09-27 58 views
6

我正在嘗試爲我的WinRT實驗設置一些特定於應用程序的項目(如API鍵)的配置文件。在Javascript WinRT應用程序中讀取XML資源文件

到目前爲止,我在項目的根目錄中添加了一個「config.xml」文件,將其標記爲屬性中的資源...然後我被卡住了。

我能找到的每個例子似乎都涉及到JSON資源文件(這些文件在某種程度上與常規的本地化有關,似乎並不適合一般的配置文件?),從磁盤加載文件(這不起作用因爲資源被編譯到.pri文件中),或者使用C#。

那麼我該如何使這個工作在我的Javascript/HTML5應用程序?

我的最新嘗試是這樣的:

var uri = new Windows.Foundation.Uri('ms-resource:///config'); 
var xml = Windows.ApplicationModel.Resources.ResourceLoader 
              .getStringForReference(uri); 

但是,這並不工作,並拋出以下異常:

0x80073b1f - JavaScript runtime error: ResourceMap Not Found. 

我缺少什麼?


我覺得我越來越近:

var r = Windows.ApplicationModel.Resources.Core.ResourceManager 
       .current.mainResourceMap.lookup('Files/config.xml'); 
var candidates = r.resolveAll(); 
candidates[0].getValueAsFileAsync().done(readXml); 

此找到該文件的資源,但所有的候選是包含在文件中的原始絕對路徑,所以getValueAsFileAsync()拋出一個異常,並稱「系統找不到指定的文件。「 (並且不調用readXml回調)。

所以我仍然無法得到這個XML文件的內容

回答

3

嘗試......

var uri = new Windows.Foundation.Uri('ms-appx:///myFolder/myConfig.xml'); 
var file = Windows.Storage.StorageFile.getFileFromApplicationUriAsync(uri); 

現在,您可以使用文件來分析,並根據需要處理數據。

+0

感謝您的建議,但這僅適用於文件在屬性中標記爲「內容」的情況。我將它標記爲「資源」,因此它不再存在於磁盤上。 –

相關問題