在Javascript WinRT应用程序中读取XML资源文件

Ada*_*ear 6 javascript embedded-resource windows-8 windows-runtime

我正在尝试为我的WinRT实验设置一些特定于应用程序的项目(例如API密钥)的配置文件.

到目前为止,我在项目的根目录中添加了一个"config.xml"文件,将其标记为属性中的资源...然后我就被卡住了.

我能找到的每个例子似乎都处理JSON资源文件(它们按照惯例以某种方式与本地化相关联,似乎不适用于一般配置?),从磁盘加载文件(由于资源被编译后不起作用)进入.pri文件),或使用C#.

那么我如何在我的Javascript/HTML5应用程序中完成这项工作呢?

我最近的尝试是这样的:

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

但这不起作用并抛出以下异常:

0x80073b1f - JavaScript runtime error: ResourceMap Not Found.
Run Code Online (Sandbox Code Playgroud)

我错过了什么?


我觉得我越来越近了:

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

这将找到文件资源,但所有候选者包含的是文件的原始绝对路径,因此getValueAsFileAsync()抛出一个异常,说"系统找不到指定的文件".(并且readXml不调用回调).

所以我似乎仍然无法获得此XML文件的内容.

Jef*_*and 4

尝试这个...

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

您现在可以根据需要使用该文件来解析和处理数据。