Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O uso de uma barra de progresso dentro da notificação do aplicativo permite que você transmita o status de operações de execução longa para o usuário, como downloads, renderização de vídeo, metas de exercício e muito mais.
Uma barra de progresso dentro de uma notificação de aplicativo pode ser "indeterminada" (nenhum valor específico, os ponto animados indicam que uma operação está ocorrendo) ou "determinante" (um percentual específico da barra é preenchido, como 60%).
A imagem abaixo mostra uma barra de progresso determinante com todas as suas propriedades correspondentes rotuladas.
Para obter mais informações sobre notificações do aplicativo, consulte a visão geral das notificações do aplicativo.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| Título | cadeia de caracteres ou BindableString | falso | Obtém ou define uma cadeia de caracteres de título opcional. Dá suporte à associação de dados. |
| Valor | double ou AdaptiveProgressBarValue ou BindableProgressBarValue | falso | Obtém ou define o valor da barra de progresso. Dá suporte à associação de dados. O valor padrão é 0. Pode ser um duplo entre 0,0 e 1,0, AdaptiveProgressBarValue.Indeterminateou new BindableProgressBarValue("myProgressValue"). |
| ValueStringOverride | cadeia de caracteres ou BindableString | falso | Obtém ou define uma cadeia de caracteres opcional a ser exibida em vez da cadeia de caracteres de porcentagem padrão. Se isso não for fornecido, algo como "70%" será exibido. |
| Status | cadeia de caracteres ou BindableString | verdadeiro | Obtém ou define uma cadeia de caracteres de status (obrigatório), que é exibida abaixo da barra de progresso à esquerda. Essa cadeia de caracteres deve refletir o status da operação, como "Baixando..." ou "Instalando..." |
Use AppNotificationBuilder.AddProgressBar para adicionar uma barra de progresso à notificação. O exemplo a seguir gera a notificação mostrada acima.
var builder = new AppNotificationBuilder()
.AddText("Downloading your weekly playlist...")
.AddProgressBar(new AppNotificationProgressBar()
.SetTitle("Weekly playlist")
.SetValue(0.6)
.SetValueStringOverride("15/26 songs")
.SetStatus("Downloading..."));
Para atualizar dinamicamente os valores da barra de progresso, use a associação de dados conforme descrito na próxima seção.
Atualizar uma barra de progresso com associação de dados
Para exibir uma barra de progresso ao vivo, use a associação de dados para atualizar os valores de notificação sem enviar novamente toda a notificação.
- Construa o conteúdo da notificação com campos associados a dados chamando os
Bindmétodos em AppNotificationProgressBar. - Atribua uma marca (e, opcionalmente, um grupo) para identificar a notificação.
- Defina os valores iniciais de AppNotificationProgressData .
- Mostre a notificação chamando AppNotificationManager.Default.Show.
using Microsoft.Windows.AppNotifications;
using Microsoft.Windows.AppNotifications.Builder;
string tag = "weekly-playlist";
string group = "downloads";
var builder = new AppNotificationBuilder()
.AddText("Downloading your weekly playlist...")
.AddProgressBar(new AppNotificationProgressBar()
.BindTitle()
.BindValue()
.BindValueStringOverride()
.BindStatus());
var notification = builder.BuildNotification();
notification.Tag = tag;
notification.Group = group;
notification.Progress = new AppNotificationProgressData(1)
{
Title = "Weekly playlist",
Value = 0.6,
ValueStringOverride = "15/26 songs",
Status = "Downloading..."
};
AppNotificationManager.Default.Show(notification);
Em seguida, atualize os valores de progresso chamando AppNotificationManager.Default.UpdateAsync com uma nova instância AppNotificationProgressData . Incremente o número de sequência para que a plataforma saiba que essa é uma atualização mais recente.
using Microsoft.Windows.AppNotifications;
string tag = "weekly-playlist";
string group = "downloads";
var data = new AppNotificationProgressData(2)
{
Value = 0.7,
ValueStringOverride = "18/26 songs"
};
await AppNotificationManager.Default.UpdateAsync(data, tag, group);
Usar UpdateAsync em vez de substituir toda a notificação garante que a notificação permaneça na mesma posição na Central de Notificação e não se mova para cima ou para baixo. O método retorna um NotificationUpdateResult que indica se a atualização foi bem-sucedida ou se a notificação não pôde ser encontrada (o usuário pode tê-la ignorado).
Elementos que dão suporte à associação de dados
Os seguintes elementos nas notificações do aplicativo dão suporte à associação de dados:
- Todas as propriedades em AppNotificationProgressBar
- A propriedade Text nos elementos de texto de nível superior
Atualizar ou substituir uma notificação
Você pode substituir uma notificação enviando uma nova notificação pela mesma Marca e Grupo. A tabela a seguir descreve a diferença entre substituir e atualizar uma notificação.
| Substituição | Atualização | |
|---|---|---|
| Posição na Central de Notificações | Move a notificação para a parte superior da Central de Notificação. | Deixa a notificação em vigor na Central de Notificação. |
| Modificando o conteúdo | Pode alterar completamente todo o conteúdo e o layout da notificação. | Só pode alterar propriedades que dão suporte à associação de dados (barra de progresso e texto de nível superior). |
| Reaparecendo como pop-up | Pode reaparecer como um pop-up se SuppressPopup estiver false (ou definido para true para enviá-lo silenciosamente para a Central de Notificações). |
Não reaparecerá como um pop-up; os dados da notificação são atualizados silenciosamente no Centro de Notificação. |
| Usuário dispensado | A notificação de substituição sempre é enviada independentemente de o usuário ter ignorado a notificação anterior. | Se o usuário ignorar a notificação, a atualização falhará. |
Em geral, a atualização é útil para informações que são alteradas com frequência e não exigem a atenção imediata do usuário, como o progresso mudando de 50% para 65%.
Após a conclusão da sequência de atualizações (por exemplo, um arquivo terminou de baixar), considere substituir a notificação para a etapa final porque:
- A notificação final provavelmente tem layout diferente, como remoção da barra de progresso ou adição de novos botões.
- O usuário pode ter descartado a notificação de progresso, mas ainda deseja ver um pop-up quando a operação for concluída.
Consulte também
Windows developer