Guida introduttiva: Dati mobili dell'app (HTML)
[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]
Impara ad archiviare e recuperare impostazioni e file dall'archivio dei dati mobili dell'app. Per informazioni sull'archivio dei dati mobili dell'app e sulla sua utilità, vedi Dati mobili dell'app.
Registrarsi per ricevere notifica in caso di modifiche dei dati mobili
Questo esempio imposta datachangeHandler
come gestore per le modifiche dei dati mobili.
var applicationData = Windows.Storage.ApplicationData.current;
function initialize()
{
applicationData.addEventListener("datachanged", datachangeHandler);
}
function dataChangeHandler(eventArgs)
{
// TODO: Refresh your data
}
Recuperare i contenitori per le impostazioni e i file dell'app
Usa la proprietà ApplicationData.roamingSettings per recuperare le impostazioni e la proprietà ApplicationData.roamingFolder per recuperare i file.
var roamingSettings = applicationData.roamingSettings;
var roamingFolder = applicationData.roamingFolder;
Nei passaggi successivi vengono usate le variabili roamingSettings
e roamingFolder
da questo passaggio.
Scrivere dati in un'impostazione
Usa la proprietà ApplicationDataContainer.values per accedere alle impostazioni nel contenitore roamingSettings
recuperato nel passaggio precedente. Questo esempio crea un'impostazione denominata exampleSetting
e un'impostazione denominata HighPriority
adatta per il trasferimento di info critiche in termini di tempo, come lo stato dell'app.
// Simple setting
roamingSettings.values["exampleSetting"] = "Hello World";
// High Priority setting, for example, last page position in book reader app
roamingSettings.values["HighPriority"] = "65";
Un oggetto ApplicationDataCompositeValue contiene le impostazioni a cui è necessario accedere in modo atomico. Questo esempio crea un'impostazione composita denominata exampleCompositeSetting
e la aggiunge al contenitore roamingSettings
.
// Composite setting
var composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";
roamingSettings.values["exampleCompositeSetting"] = composite;
Chiama il metodo ApplicationDataContainer.CreateContainer per creare un contenitore di impostazioni. Questo esempio crea un contenitore di impostazioni denominato exampleContainer
e aggiunge un'impostazione denominata exampleSetting
. Il valore Always dall'enumerazione ApplicationDataCreateDisposition indica che il contenitore deve essere creato se non esiste già.
Dopo la modifica di un'impostazione nell'archivio dei dati mobili dell'app, il sistema operativo invia l'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";
}
Leggere dati da un'impostazione
Usa la proprietà ApplicationDataContainer.values per accedere all'impostazione exampleSetting
nel contenitore roamingSettings
.
// Simple setting
var value = roamingSettings.values["exampleSetting"];
if (!value)
{
// No data
}
else
{
// Access data in value
}
Usa la proprietà ApplicationDataContainer.values per accedere all'impostazione exampleCompositeSetting
nel contenitore roamingSettings
.
// Composite setting
var composite = roamingSettings.values["exampleCompositeSetting"];
if (!composite)
{
// No data
}
else
{
// Access data in composite["intVal"] and composite["strVal"]
}
Usa la proprietà ApplicationDataContainer.values per accedere all'impostazione exampleSetting
nel contenitore exampleContainer
.
// Setting in a container
var hasContainer = roamingSettings.containers.hasKey("exampleContainer");
if (hasContainer)
{
// Access data in roamingSettings.containers.lookup("exampleContainer").values.hasKey("exampleSetting");
}
Scrivere dati in un file
Usa le API per i file, come Windows.Storage.StorageFolder.createFileAsync e Windows.Storage.FileIO.writeTextAsync, per creare e aggiornare un file nell'archivio dei dati mobili dell'app. Questo esempio crea un file denominato dataFile.txt
nel contenitore roamingFolder
e scrive la data e l'ora correnti nel file. Il valore replaceExisting dall'enumerazione CreationCollisionOption indica che il file deve essere sostituito se già esistente.
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 () {
});
}
Leggere dati da un file
Usa le API per i file, come Windows.Storage.StorageFolder.getFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync e Windows.Storage.FileIO.readTextAsync, per aprire e leggere un file nell'archivio dei dati mobili dell'app. Questo esempio apre il file dataFile.txt
creato nel passaggio precedente e legge la data dal file. Il valore openIfExists dall'enumerazione CreationCollisionOption indica che il file deve esistere. Per altri dettagli sul caricamento di risorse di tipo file da varie posizioni, vedi Come caricare risorse di tipo file.
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
});
}
Eliminare le impostazioni al termine
Chiama il metodo ApplicationDataContainerSettings.remove per eliminare l'impostazione exampleSetting
dal contenitore roamingSettings
quando hai finito di usarla.
// Simple setting
roamingSettings.values.remove("exampleSetting");
Chiama il metodo ApplicationDataCompositeValue.remove per eliminare l'impostazione composita exampleCompositeSetting
dal contenitore roamingSettings
quando hai finito di usarla.
// Delete composite setting
roamingSettings.values.remove("exampleCompositeSetting");
Chiama il metodo ApplicationDataContainer.deleteContainer per eliminare il contenitore delle impostazioni exampleContainer
quando hai finito di usarlo.
// Delete container
roamingSettings.deleteContainer("exampleContainer");
Osservazioni
Per ogni app esiste una quota per i dati mobili. Verifica la proprietà ApplicationData.roamingStorageQuota per determinare la dimensione totale consentita per i dati mobili. Se i dati mobili superano la quota, non ne verrà eseguito il roaming fino a quando le dimensioni non diventano di nuovo minori della quota.
Argomenti correlati
Attività
Come caricare risorse di tipo file
Guida introduttiva: Dati locali dell'app
Guida introduttiva: Dati temporanei dell'app
Informazioni concettuali
Accesso ai dati dell'app con Windows Runtime
Linee guida
Linee guida per i dati mobili dell'app
Riferimento
Windows.Storage.ApplicationData
Windows.Storage.ApplicationDataCompositeValue
Windows.Storage.ApplicationDataContainer
Windows.Storage.ApplicationDataContainerSettings
Esempi