2012-09-27 16 views
6

Próbuję skonfigurować plik konfiguracyjny dla niektórych elementów aplikacji (takich jak klucze API) dla mojego eksperymentu WinRT.Odczytywanie pliku zasobów XML w aplikacji WinRT Javascript

Do tej pory dodałem plik "config.xml" do katalogu głównego mojego projektu, oznaczony jako zasób we właściwościach ... i utknąłem.

Każdy przykład, jaki mogę znaleźć, wydaje się zajmować plikami zasobów JSON (które są w jakiś sposób przywiązane do lokalizacji według konwencji i nie wydają się odpowiednie do ogólnych rzeczy konfiguracyjnych?), Ładowanie plików z dysku (co nie działa ponieważ zasoby są kompilowane do pliku .pri) lub używa C#.

Jak mogę to ułatwić w mojej aplikacji JavaScript/HTML5?

Moja ostatnia próba była to:

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

ale to nie działa i rzuca następujący wyjątek:

0x80073b1f - JavaScript runtime error: ResourceMap Not Found. 

Czego mi brakuje?


czuję, że jestem coraz bliżej:

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

Znajduje to zasób plików, ale zawiera kandydat jest oryginalna ścieżka bezwzględna do pliku, więc getValueAsFileAsync() zgłasza wyjątek powiedzenie „im system nie może znaleźć określonego pliku. " (i wywołanie zwrotne readXml nie jest wywoływane).

Więc nadal nie mogę uzyskać zawartości zawartości tego pliku XML.

Odpowiedz

3

Spróbuj tego ...

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

Teraz można użyć pliku do analizy i obsługi danych, ile potrzeba.

+0

Dzięki za sugestię, ale działa to tylko wtedy, gdy plik jest oznaczony jako "Treść" we właściwościach. Mam to oznaczone jako "Zasób", więc nie istnieje już na dysku. –