Langage: HTML | XAML

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

Applies to Windows and Windows Phone

Découvrez comment stocker et récupérer des paramètres et des 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.

Feuille de route : comment cette rubrique s’articule-t-elle par rapport aux autres ? Voir :

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

Inscrivez-vous pour l’événement DataChanged. Cet exemple définit DataChangeHandler comme gestionnaire des modifications des données itinérantes.


void InitHandlers()
{
   Windows.Storage.ApplicationData.Current.DataChanged += 
      new TypedEventHandler<ApplicationData, object>(DataChangeHandler);
}

void DataChangeHandler(Windows.Storage.ApplicationData appData, object o)
{
   // 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.


Windows.Storage.ApplicationDataContainer roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
Windows.Storage.StorageFolder roamingFolder = Windows.Storage.ApplicationData.Current.RoamingFolder;

É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é dans la section 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.

  • Applies to Windows Phone

Le paramètre HighPriority n’a aucun effet dans les applications Windows Phone.


// 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

Windows.Storage.ApplicationDataCompositeValue 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.


// Setting in a container

Windows.Storage.ApplicationDataContainer container = 
   roamingSettings.CreateContainer("exampleContainer", Windows.Storage.ApplicationDataCreateDisposition.Always);

if (roamingSettings.Containers.ContainsKey("exampleContainer"))
{
   roamingSettings.Containers["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

Object value = roamingSettings.Values["exampleSetting"];

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


// Composite setting

Windows.Storage.ApplicationDataCompositeValue composite = 
   (Windows.Storage.ApplicationDataCompositeValue)roamingSettings.Values["exampleCompositeSetting"];

if (composite == null)
{
   // 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

bool hasContainer = roamingSettings.Containers.ContainsKey("exampleContainer");
bool hasSetting = false;

if (hasContainer)
{
   hasSetting = roamingSettings.Containers["exampleContainer"].Values.ContainsKey("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.


async void WriteTimestamp()
{
   Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter = 
       new Windows.Globalization.DatetimeFormatting.DateTimeFormatter("longtime");

   StorageFile sampleFile = await roamingFolder.CreateFileAsync("dataFile.txt", 
       CreationCollisionOption.ReplaceExisting);
   await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTime.Now));
}

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éé dans la section précédente, puis lit la date du fichier. Pour obtenir des détails sur le chargement de ressources de fichiers à partir de différents emplacements, voir Comment charger des ressources de fichiers.


async void ReadTimestamp()
{
   try
   {
      StorageFile sampleFile = await roamingFolder.GetFileAsync("dataFile.txt");
      String timestamp = await FileIO.ReadTextAsync(sampleFile);
      // Data is contained in timestamp
   }
   catch (Exception)
   {
      // 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.


// Delete 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");

Rendre les données itinérantes entre différents types de périphériques

Si vous publiez deux versions de votre application (une pour le Windows Store et une autre pour le Windows Phone Store), vous pouvez rendre les données d’application itinérantes pour les applications qui s’exécutent sur les deux types d’appareil. Pour rendre des données itinérantes sur différentes versions de votre application et différents types d’appareil, assignez le même nom de famille du package (PFN, Package Family Name) à chaque version de l’application.

Pour plus d’informations, voir Comment rendre des données itinérantes entre une application du Windows Store et une application du Windows Phone Store.

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âches
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

 

 

Afficher:
© 2014 Microsoft