Idioma: HTML | XAML

Guia de início rápido: interceptando notificações por push para aplicativos em execução (XAML)

Applies to Windows and Windows Phone

Observação  Não está usando C#/VB/C++? Veja Guia de início rápido: interceptando notificações por push para aplicativos em execução (HTML).

Você pode projetar seu aplicativo para interceptar uma notificação por push e responder a ela de modo não padrão. Esse procedimento pode ser usado para todos os tipos de notificação por push, mas é particularmente útil para notificações do sistema e notificações brutas.

Quando o serviço em nuvem de seu aplicativo envia uma notificação ao Windows, o aplicativo tem a oportunidade de interceptar e manipular a notificação antes que ela exiba uma notificação do sistema, atualize um bloco ou uma notificação ou envie uma notificação bruta para uma tarefa em segundo plano. Ele também pode suprimir a exibição ou atualização desses elementos. A implementação de um manipulador de eventos de entrega de notificação é opcional. Isso é mais útil em cenários nos quais o aplicativo deseja manipular e suprimir notificações do sistema recebidas, em vez de mostrá-las ao usuário.

  • Applies to Windows Phone

A partir do Windows Phone 8.1, o telefone pode também impedir que uma notificação do sistema seja exibida com o uso da propriedade ToastNotification.suppressPopup ou ScheduledToastNotification.suppressPopup no conteúdo XML da notificação.

Observação  Esse procedimento se aplica somente a aplicativos em execução. As notificações que o sistema envia quando o aplicativo não está em execução e o manipulador não está implementado são entregues normalmente — os blocos são atualizados, a notificação do sistema é mostrada e as notificações brutas são enviadas para tarefas em segundo plano (se implementadas).

Pré-requisitos

Para compreender este tópico ou para usar o código que ele oferece, você precisará de:

Instruções

1. Adicionar declarações de namespace

Windows.Networking.PushNotifications inclui as APIs de notificação por push e brutas. Windows.UI.Notifications é necessário para recuperar conteúdo de bloco, de notificação e de selo da notificação.



using Windows.UI.Notifications;                        
using Windows.Networking.PushNotifications;

2. Criar um canal de notificação por push

É necessário que haja um canal de notificação válido para receber notificações por push de um servidor em nuvem. O ouvinte do evento aguardará a chegada da notificação nesse canal. Para saber mais sobre como criar um canal, veja Como solicitar, criar e salvar um canal de notificação.



PushNotificationChannel channel = null;

try
{
    channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
}

catch (Exception ex)
{ 
    // ... 
}

3. Criar uma função para manipular o evento de notificação por push

O exemplo a seguir mostra como manipular todos os tipos de notificação.

A última linha de código deste exemplo define a propriedade Cancel do evento como true. Isso evita que a notificação faça alterações na interface do usuário, como atualizar um bloco/notificação ou exibir uma notificação do sistema. No caso de uma notificação bruta, ela evita que a notificação seja entregue para uma tarefa em segundo plano, caso haja alguma implementada. Desse modo, qualquer resposta à notificação fica a cargo do manipulador.



string content = null;
private async void OnPushNotification(PushNotificationChannel sender, PushNotificationReceivedEventArgs e) 
{ 
    String notificationContent = String.Empty; 
    
    switch (e.NotificationType) 
    { 
        case PushNotificationType.Badge:
            notificationContent = e.BadgeNotification.Content.GetXml(); 
            break; 
        
        case PushNotificationType.Tile: 
            notificationContent = e.TileNotification.Content.GetXml(); 
            break; 
        
        case PushNotificationType.Toast: 
            notificationContent = e.ToastNotification.Content.GetXml(); 
            break; 
        
        case PushNotificationType.Raw: 
            notificationContent = e.RawNotification.Content;
            break; 
    }
    
    e.Cancel = true;
}

4. Adicionar um ouvinte de evento para notificações por push recebidas

Use o canal criado na etapa 1 para atribuir o manipulador de eventos criado na etapa 2 a fim de manipular o evento PushNotificationReceived.



Channel.PushNotificationReceived += OnPushNotification;

Resumo

Se o cenário exigir, a interceptação e a manipulação de uma notificação por push enquanto seu aplicativo está em execução pode dar a ele mais controle sobre o efeito dessas notificações. Por exemplo, não convém exibir uma notificação do sistema por cima de um jogo em andamento. Além disso, o manipulador de eventos pode integrar o conteúdo da notificação à interface do usuário do jogo de modo menos invasivo.

Tópicos relacionados

Exemplos
Exemplo de notificações não processadas
Envio e exemplo de notificações periódicas
Informações conceituais
Visão geral dos Serviços de Notificação por Push do Windows (WNS)
Visão geral de notificações brutas
Práticas recomendadas
Diretrizes e lista de verificação de notificações por push
Diretrizes e lista de verificação para notificações brutas
Instruções
Guia de início rápido: criando e registrando uma tarefa em segundo plano de notificação bruta

 

 

Mostrar:
© 2014 Microsoft