Guia de início rápido: dados de aplicativo em roaming (HTML)
[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente]
Saiba como armazenar e recuperar configurações e arquivos do repositório de dados de aplicativo em roaming. Para informações sobre o repositório de dados de aplicativo em roaming e porque você deve usá-lo, consulte Dados de aplicativo em roaming.
Registrar-se para receber notificação quando da alteração de dados móveis
Este exemplo define datachangeHandler
como o manipulador nas alterações de dados móveis.
var applicationData = Windows.Storage.ApplicationData.current;
function initialize()
{
applicationData.addEventListener("datachanged", datachangeHandler);
}
function dataChangeHandler(eventArgs)
{
// TODO: Refresh your data
}
Obter os contêineres para as configurações e arquivos do aplicativo
Use a propriedade ApplicationData.roamingSettings para obter as configurações e a propriedade ApplicationData.roamingFolder para obter os arquivos.
var roamingSettings = applicationData.roamingSettings;
var roamingFolder = applicationData.roamingFolder;
As próximas etapas usam as variáveis roamingSettings
e roamingFolder
a partir dessa etapa.
Gravar dados para uma configuração
Use a propriedade ApplicationDataContainer.values para acessar as configurações no contêiner roamingSettings
que obtivemos na etapa anterior. Este exemplo cria uma configuração chamada exampleSetting
e uma configuração HighPriority
que é melhor indicada para informações transicionais de tempo crítico, como o estado do aplicativo.
// Simple setting
roamingSettings.values["exampleSetting"] = "Hello World";
// High Priority setting, for example, last page position in book reader app
roamingSettings.values["HighPriority"] = "65";
Um objeto ApplicationDataCompositeValue contém as configurações que devem ser acessadas automaticamente. Este exemplo cria uma definição composta nomeada exampleCompositeSetting
e a adiciona ao contêiner roamingSettings
.
// Composite setting
var composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";
roamingSettings.values["exampleCompositeSetting"] = composite;
Chame o método ApplicationDataContainer.CreateContainer para criar um contêiner de configurações. Este exemplo cria um contêiner nomeado exampleContainer
e adiciona uma configuração nomeada exampleSetting
. O valor Always da enumeração de ApplicationDataCreateDisposition indica que o contêiner deve ser criado se ele já não existir.
Após alterar uma configuração no repositório de dados de aplicativo de roaming, o sistema operacional envia o 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";
}
Ler dados de uma configuração
Use a propriedade ApplicationDataContainer.values para acessar a configuração exampleSetting
no contêiner roamingSettings
.
// Simple setting
var value = roamingSettings.values["exampleSetting"];
if (!value)
{
// No data
}
else
{
// Access data in value
}
Use a propriedade ApplicationDataContainer.values para acessar a configuração exampleCompositeSetting
no contêiner roamingSettings
.
// Composite setting
var composite = roamingSettings.values["exampleCompositeSetting"];
if (!composite)
{
// No data
}
else
{
// Access data in composite["intVal"] and composite["strVal"]
}
Use a propriedade ApplicationDataContainer.values para acessar a configuração exampleSetting
no contêiner exampleContainer
.
// Setting in a container
var hasContainer = roamingSettings.containers.hasKey("exampleContainer");
if (hasContainer)
{
// Access data in roamingSettings.containers.lookup("exampleContainer").values.hasKey("exampleSetting");
}
Gravar dados em um arquivo
Use as APIs de arquivo, como Windows.Storage.StorageFolder.createFileAsync e Windows.Storage.FileIO.writeTextAsync, para criar e atualizar um arquivo no armazenamento de dados do aplicativo local. Este exemplo cria um arquivo chamado dataFile.txt
no contêiner roamingFolder
e escreve a data e hora atual no arquivo. O valor replaceExisting da enumeração CreationCollisionOption indica para substituir o arquivo se ele já existir.
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 () {
});
}
Ler dados de um arquivo
Use as APIs de arquivo, como Windows.Storage.StorageFolder.getFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync e Windows.Storage.FileIO.readTextAsync, para abrir e ler um arquivo no repositório de dados de aplicativo de roaming. Este exemplo abre o arquivo dataFile.txt
criado na etapa anterior e lê a data do arquivo. O valor openIfExists da enumeração CreationCollisionOption indica que o arquivo deve existir. Para saber detalhes de como carregar recursos de arquivos de vários locais, veja Como carregar recursos de arquivos.
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
});
}
Excluir as configurações quando já não forem necessárias
Chame o método ApplicationDataContainerSettings.remove para excluir a configuração exampleSetting
do contêiner roamingSettings
ao concluí-la.
// Simple setting
roamingSettings.values.remove("exampleSetting");
Chame o método ApplicationDataCompositeValue.remove para excluir a configuração da composição exampleCompositeSetting
do contêiner roamingSettings
ao concluí-la.
// Delete composite setting
roamingSettings.values.remove("exampleCompositeSetting");
Chame o método ApplicationDataContainer.deleteContainer para excluir o contêiner de configurações exampleContainer
ao concluí-lo.
// Delete container
roamingSettings.deleteContainer("exampleContainer");
Comentários
Cada aplicativo tem uma cota para os dados do aplicativo em roaming. Verifique a propriedade ApplicationData.roamingStorageQuota para determinar o tamanho total permitido para os dados de roaming. Se os dados de roaming ultrapassarem a cota, o roaming não será efetuado até que o tamanho dos dados seja novamente inferior à cota.
Tópicos relacionados
Tarefa
Como carregar recursos de arquivos
Início rápido: dados locais de aplicativo
início rápido: dados temporários de aplicativo
Conceitual
Acessando dados de aplicativo com o Tempo de Execução do Windows
Diretrizes
Diretrizes de dados de aplicativo em roaming
Referência
Windows.Storage.ApplicationData
Windows.Storage.ApplicationDataCompositeValue
Windows.Storage.ApplicationDataContainer
Windows.Storage.ApplicationDataContainerSettings
Amostras