Aplicaciones de Windows
Contraer la tabla de contenido
Expandir la tabla de contenido

Inicio rápido: datos móviles de aplicaciones (aplicaciones de la Tienda Windows con JavaScript y HTML)

Obtén información sobre el almacenamiento y la recuperación de configuración y archivos desde el almacén de perfiles móviles de datos de la aplicación. Para obtener información sobre los datos aplicación móviles y los motivos por los que conviene usarlos, consulta el tema sobre datos móviles de aplicaciones.

Registrarse para recibir notificaciones cuando cambian los perfiles móviles de datos

En este ejemplo se establece datachangeHandler como el controlador de los cambios en los perfiles móviles de datos.



var applicationData = Windows.Storage.ApplicationData.current;
 
function initialize() 
{
    applicationData.addEventListener("datachanged", datachangeHandler);
}

function dataChangeHandler(eventArgs)
{
    // TODO: Refresh your data
}

Obtener los contenedores para los archivos y la configuración de la aplicación

Usa la propiedad ApplicationData.roamingSettings para obtener la configuración y la propiedad ApplicationData.roamingFolder para obtener los archivos.


var roamingSettings = applicationData.roamingSettings;
var roamingFolder = applicationData.roamingFolder;

En los siguientes pasos se usan las variables roamingSettings y roamingFolder de este paso.

Escribir datos en una configuración

Usa la propiedad ApplicationDataContainer.values para obtener acceso a la configuración en el contenedor roamingSettings que obtuvimos en el paso anterior. Este ejemplo crea una opción de configuración denominada exampleSetting y una opción de configuración HighPriority indicada para la transferencia de información para la que el tiempo es fundamental, como el estado de la aplicación.


// Simple setting

roamingSettings.values["exampleSetting"] = "Hello World";
// High Priority setting, for example, last page position in book reader app

roamingSettings.values["HighPriority"] = "65";


Un objeto ApplicationDataCompositeValue contiene configuraciones a las que debe obtenerse acceso de forma atómica. En este ejemplo se crea una configuración compuesta llamada exampleCompositeSetting y se la agrega al contenedor roamingSettings.


// Composite setting

var composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";

roamingSettings.values["exampleCompositeSetting"] = composite;

Llama al método ApplicationDataContainer.CreateContainer para crear un contenedor de configuraciones. En este ejemplo se crea un contenedor de configuraciones denominado exampleContainer y se agrega una configuración llamada exampleSetting. El valor Always desde la enumeración ApplicationDataCreateDisposition indica que el contenedor debe crearse si no existe ya.

Después de cambiar una configuración en el almacén de perfiles móviles de datos de la aplicación, el sistema envía el evento datachanged.


// Setting in a container

var container = roamingSettings.createContainer("exampleContainer", 
                                                Windows.Storage.ApplicationDataCreateDisposition.Always);

if (roamingSettings.containers.hasKey("exampleContainer"))
{
    roamingSettings.containers.lookup("exampleContainer").values["exampleSetting"] = "Hello World";
}

Leer datos desde una configuración

Usa la propiedad ApplicationDataContainer.values para obtener acceso a la configuración exampleSetting en el contenedor roamingSettings.


// Simple setting

var value = roamingSettings.values["exampleSetting"];
        
if (!value)
{
    // No data
}
else
{
    // Access data in value
}

Usa la propiedad ApplicationDataContainer.values para obtener acceso a la configuración exampleCompositeSetting en el contenedor roamingSettings.


// Composite setting

var composite = roamingSettings.values["exampleCompositeSetting"];

if (!composite)
{
    // No data
}
else
{
    // Access data in composite["intVal"] and composite["strVal"]
}

Usa la propiedad ApplicationDataContainer.values para obtener acceso a la configuración exampleSetting en el contenedor exampleContainer.


// Setting in a container

var hasContainer = roamingSettings.containers.hasKey("exampleContainer");

if (hasContainer)
{
    // Access data in roamingSettings.containers.lookup("exampleContainer").values.hasKey("exampleSetting");
}

Escribir datos en un archivo

Usa las API de archivo, como Windows.Storage.StorageFolder.createFileAsync y Windows.Storage.FileIO.writeTextAsync, para crear y actualizar un archivo en el almacén de perfiles móviles de datos de la aplicación. En este ejemplo se crea un archivo llamado dataFile.txt en el contenedor roamingFolder y se escriben la fecha y la hora actuales en el archivo. El valor replaceExisting de la enumeración CreationCollisionOption indica que el archivo debe reemplazarse si ya existe.


function writeTimestamp() {
   roamingFolder.createFileAsync("dataFile.txt", Windows.Storage.CreationCollisionOption.replaceExisting)
      .then(function (sampleFile) {
         var formatter = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");
         var timestamp = formatter.format(new Date());

         return Windows.Storage.FileIO.writeTextAsync(sampleFile, timestamp);
      }).done(function () {      
      });
}

Leer datos desde un archivo

Usa las API de archivo, como Windows.Storage.StorageFolder.getFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync y Windows.Storage.FileIO.readTextAsync para abrir y leer un archivo en el almacén de perfiles móviles de datos de la aplicación. En este ejemplo se abre el archivo dataFile.txt creado en el paso anterior y se lee la fecha en él. El valor openIfExists de la enumeración CreationCollisionOption indica que el archivo debe existir. Para obtener información detallada sobre la carga de recursos de archivos de varias ubicaciones, consulta Cómo cargar recursos de archivos.


function readTimestamp() {
   roamingFolder.getFileAsync("dataFile.txt")
      .then(function (sampleFile) {
         return Windows.Storage.FileIO.readTextAsync(sampleFile);
      }).done(function (timestamp) {
         // Data is contained in timestamp
      }, function () {
         // Timestamp not found
      });
}

Eliminar configuraciones cuando se termine con ellas

Llama al método ApplicationDataContainerSettings.remove para eliminar la configuración exampleSetting del contenedor roamingSettings cuando hayas terminado.


// Simple setting

roamingSettings.values.remove("exampleSetting");

Llama al método ApplicationDataCompositeValue.remove para eliminar la configuración compuesta exampleCompositeSetting del contenedor roamingSettings cuando hayas terminado.


// Delete composite setting

roamingSettings.values.remove("exampleCompositeSetting");

Llama al método ApplicationDataContainer.deleteContainer para eliminar el contenedor de configuraciones exampleContainer cuando hayas terminado.


// Delete container

roamingSettings.deleteContainer("exampleContainer");

Observaciones

Cada aplicación tiene una cuota para los perfiles móviles de datos de la aplicación. Consulta la propiedad ApplicationData.roamingStorageQuota para determinar el tamaño total que se permite para los perfiles móviles de datos de la aplicación. Si el perfil móvil de datos supera la cuota, no se usará hasta que su tamaño vuelva a ser menor que la cuota.

Temas relacionados

Tarea
Cómo cargar recursos de archivos
Inicio rápido: datos de aplicación local
Inicio rápido: datos de aplicación temporales
Conceptual
Datos de la aplicación
Directrices
Directrices para perfiles móviles de datos de la aplicación
Referencia
Windows.Storage.ApplicationData
Windows.Storage.ApplicationDataCompositeValue
Windows.Storage.ApplicationDataContainer
Windows.Storage.ApplicationDataContainerSettings
Muestras
Ejemplo de los datos de la aplicación

 

 

Mostrar:
© 2018 Microsoft