2012-09-27 19 views
6

Estoy tratando de configurar un archivo de configuración para algunos elementos específicos de la aplicación (como las teclas API) para mi experimento WinRT.Lectura de un archivo de recursos XML en una aplicación Javascript WinRT

Hasta ahora he agregado un archivo "config.xml" a la raíz de mi proyecto, lo he marcado como un recurso en las propiedades ... y luego estoy atascado.

Cada ejemplo que puedo encontrar parece ocuparse de los archivos de recursos JSON (que de alguna manera están ligados a la localización por convención y no parecen apropiados para las cosas de configuración general), cargar archivos del disco (que no funciona ya que los recursos se compilan en el archivo .pri), o usa C#.

Entonces, ¿cómo puedo hacer que esto funcione en mi aplicación Javascript/HTML5?

Mi último intento fue la siguiente:

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

pero esto no funciona y arroja la siguiente excepción:

0x80073b1f - JavaScript runtime error: ResourceMap Not Found. 

¿Qué me falta?


me siento como que estoy cada vez más cerca:

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

Esto encuentra el archivo de recursos, pero todo el candidato contiene es la ruta absoluta del archivo original, por lo que se produce una excepción getValueAsFileAsync() diciendo "El el sistema no puede encontrar el archivo especificado. " (y no se llama a la devolución de llamada readXml).

Así que todavía parece que no puedo obtener el contenido de este archivo XML.

Respuesta

3

Prueba esto ...

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

Ahora se puede utilizar el archivo para analizar y manipular los datos según sea necesario.

+0

Gracias por la sugerencia, pero esto solo funciona si el archivo está marcado como "Contenido" en las propiedades. Lo tengo marcado como "Recurso", por lo que ya no existe en el disco. –

Cuestiones relacionadas