Démarrage rapide : données d’application itinérantes (HTML)

[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Découvrez le stockage et la récupération de paramètres et de fichiers à partir du magasin de données d’application itinérantes. Pour plus d’informations sur les données d’application itinérantes et l’intérêt qu’elles présentent pour vous, voir Données d’application itinérantes.

S’inscrire pour recevoir les notifications sur les changements de données en itinérance

Cet exemple définit datachangeHandler comme gestionnaire des modifications des données itinérantes.


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

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

Obtenir les conteneurs pour les paramètres et les fichiers de l’application

Utilisez la propriété ApplicationData.roamingSettings pour obtenir les paramètres et la propriété ApplicationData.roamingFolder pour déterminer les fichiers.

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

Les étapes suivantes s’appuient sur les variables roamingSettings et roamingFolder de cette étape.

Écrire des données dans un paramètre

Utilisez la propriété ApplicationDataContainer.values pour accéder aux paramètres inclus dans le conteneur roamingSettings abordé à l’étape précédente. Cet exemple crée un paramètre nommé exampleSetting et un paramètre nommé HighPriority idéal pour la transition d’informations chronosensibles telles que l’état d’une application.

// Simple setting

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

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

Un objet ApplicationDataCompositeValue contient les paramètres devant être accédés atomiquement. Cet exemple crée un paramètre composite intitulé exampleCompositeSetting, puis l’ajoute au conteneur roamingSettings.

// Composite setting

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

roamingSettings.values["exampleCompositeSetting"] = composite;

Appelez la méthode ApplicationDataContainer.CreateContainer pour créer un conteneur de paramètres. Cet exemple crée un conteneur de paramètres intitulé exampleContainer, puis ajoute un paramètre appelé exampleSetting. La valeur Always de l’énumération ApplicationDataCreateDisposition indique que le conteneur est créé s’il n’existe pas.

Après avoir modifié un paramètre dans un magasin de données d’application itinérantes, le système d’exploitation envoie l’événement 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";
}

Lire des données d’un paramètre

Utilisez la propriété ApplicationDataContainer.values pour accéder au paramètre exampleSetting dans le conteneur roamingSettings.

// Simple setting

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

Utilisez la propriété ApplicationDataContainer.values pour accéder au paramètre exampleCompositeSetting dans le conteneur roamingSettings.

// Composite setting

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

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

Utilisez la propriété ApplicationDataContainer.values pour accéder au paramètre exampleSetting dans le conteneur exampleContainer.

// Setting in a container

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

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

Écrire des données dans un fichier

Faites appel aux API, telles que Windows.Storage.StorageFolder.createFileAsync et Windows.Storage.FileIO.writeTextAsync, pour créer et mettre à jour un fichier dans le magasin de données d’application itinérantes. Cet exemple crée un fichier appelé dataFile.txt dans le conteneur roamingFolder, puis écrit la date et l’heure actuelles dans le fichier. La valeur replaceExisting de l’énumération CreationCollisionOption indique de remplacer le fichier s’il 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 () {      
      });
}

Lire des données d’un fichier

Utilisez les API de fichier, telles que Windows.Storage.StorageFolder.getFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync et Windows.Storage.FileIO.readTextAsync pour ouvrir et lire un fichier dans le magasin de données d’application itinérantes. Cet exemple ouvre le fichier dataFile.txt créé à l’étape précédente, puis lit la date du fichier. La valeur openIfExists de l’énumération CreationCollisionOption indique que le fichier doit exister. Pour obtenir des détails sur le chargement de ressources de fichiers à partir de différents emplacements, voir Comment charger des ressources de fichiers.

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
      });
}

Supprimer des paramètres après leur utilisation

Appelez la méthode ApplicationDataContainerSettings.remove pour supprimer le paramètre exampleSetting du conteneur roamingSettings lorsque vous n’en avez plus besoin.

// Simple setting

roamingSettings.values.remove("exampleSetting");

Appelez la méthode ApplicationDataCompositeValue.remove pour supprimer le paramètre composite exampleCompositeSetting du conteneur roamingSettings lorsque vous n’en avez plus besoin.

// Delete composite setting

roamingSettings.values.remove("exampleCompositeSetting");

Appelez la méthode ApplicationDataContainer.deleteContainer pour supprimer le conteneur de paramètres exampleContainer lorsque vous n’en avez plus besoin.

// Delete container

roamingSettings.deleteContainer("exampleContainer");

Remarques

Chaque application dispose d’un quota de données itinérantes. Vérifiez la propriété ApplicationData.roamingStorageQuota pour déterminer la taille totale des données itinérantes permises. Si vos données itinérantes dépassent le quota, l’application ne peut alors pas utiliser l’itinérance tant que le volume ne repasse pas en dessous du quota.

Rubriques associées

Tâche

Comment charger des ressources de fichiers

Démarrage rapide : données d’application locales

Démarrage rapide : données d’application temporaires

Conceptuel

Accès aux données de l’application à l’aide de Windows Runtime

Recommandations

Recommandations en matière de données d’application itinérantes

Référence

Windows.Storage.ApplicationData

Windows.Storage.ApplicationDataCompositeValue

Windows.Storage.ApplicationDataContainer

Windows.Storage.ApplicationDataContainerSettings

Exemples

Exemple de données d’application