Compartilhar via


Escolher o tipo correto de canal de notificação por push

Este artigo aborda os três tipos de canais de notificação por push do Windows (primário, secundário e alternativo) que ajudam você a fornecer conteúdo para seu aplicativo.

(Para obter detalhes sobre como criar notificações push, consulte o Visão geral dos Serviços de Notificação por Push do Windows (WNS).)

Tipos de canais push

Há três tipos de canais de push que podem ser usados para enviar notificações para um aplicativo do Windows. Eles são:

Canal primário - o canal de push "tradicional". Pode ser usado por qualquer aplicativo na loja para enviar notificações do sistema, bloco, raw ou notificação. Saiba mais aqui.

Canal de bloco secundário - usado para enviar atualizações de bloco para um bloco secundário. Só pode ser usado para enviar notificações de bloco ou selo para um bloco secundário fixado na tela inicial do usuário

Canal - alternativo não é mais suportado - Um novo tipo de canal adicionado na Atualização para Criadores. Ele permite que notificações brutas sejam enviadas para qualquer aplicativo do Windows, incluindo aqueles que não estão registrados na Loja. Novamente, observe que o canal alternativo não é mais suportado.

Observação

Não importa qual canal de push você use, depois que seu aplicativo estiver em execução no dispositivo, ele sempre poderá enviar notificações locais de notificação do sistema, bloco ou notificação. Ele pode enviar notificações locais dos processos do aplicativo em primeiro plano ou de uma tarefa em segundo plano.

Canais primários

Esses são os canais mais usados no Windows no momento e são bons para quase todos os cenários em que seu aplicativo será distribuído por meio da Microsoft Store. Eles permitem que você envie todos os tipos de notificações para o aplicativo.

O que os canais primários permitem?

  • Enviar atualizações de bloco ou notificação para o bloco primário. Se o usuário optou por fixar seu bloco na tela inicial, esta é sua chance de se exibir. Envie atualizações com informações úteis ou lembretes de experiências em seu aplicativo.
  • Envio de notificações do sistema. As notificações do sistema são uma chance de obter algumas informações na frente do usuário imediatamente. Eles são pintados pelo shell sobre a maioria dos aplicativos e ficam no centro de ação para que o usuário possa voltar e interagir com eles mais tarde.
  • Enviar notificações brutas para disparar uma tarefa em segundo plano. Às vezes, você deseja fazer algum trabalho em nome do usuário com base em uma notificação. As notificações brutas permitem que as tarefas em segundo plano do seu aplicativo sejam executadas
  • Criptografia de mensagens em trânsito fornecida pelo Windows usando TLS. As mensagens são criptografadas na transmissão, tanto no WNS quanto no dispositivo do usuário.

Limitações dos canais primários

  • Requer o uso da API REST do WNS para notificações por push, o que não é padrão entre fornecedores de dispositivos.
  • Apenas um canal pode ser criado por aplicativo
  • Requer que seu aplicativo seja registrado na Microsoft Store

Criando um canal principal

PushNotificationChannel channel = 
	await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

Canais de bloco secundários

Esses são canais que podem ser usados para enviar atualizações de bloco e notificação para um bloco secundário. Eles são usados por aplicativos para notificar os usuários sobre ações ou informações interessantes com as quais eles podem interagir no aplicativo, como novas mensagens em um bate-papo em grupo ou um placar esportivo atualizado.

O que os canais de bloco secundário habilitam?

  • Enviar notificações de bloco ou notificação para blocos secundários. Os blocos secundários são uma ótima maneira de atrair os usuários de volta para seu aplicativo. Eles são um link profundo para as informações com as quais se importam, e colocar informações relevantes nos blocos ajuda a trazê-los de volta sempre.
  • Separação de canais (e expirações) entre vários ladrilhos. Isso permite que você separe a lógica no back-end entre os vários tipos de blocos secundários que um usuário pode fixar em sua tela inicial.
  • Criptografia de mensagens em trânsito fornecida pelo Windows usando TLS. As mensagens são criptografadas na transmissão, tanto no WNS quanto no dispositivo do usuário.

Limitações dos canais de mosaico secundários

  • Não são permitidas notificações de notificação do sistema ou raw. As notificações do sistema ou brutas enviadas para um bloco secundário são ignoradas pelo sistema.
  • Requer que seu aplicativo seja registrado na Microsoft Store

Criando um canal de bloco secundário

PushNotificationChannel channel = 
	await PushNotificationChannelManager.CreatePushNotificationChannelForSecondaryTileAsync(tileId);

Canais alternativos

Os canais alternativos permitem que os aplicativos enviem notificações por push sem se registrar na Microsoft Store ou criar canais por push fora do principal usado para o aplicativo.

Observação

A partir de 1º de julho de 2021, os aplicativos que desejam usar o canal de push da Web ou o canal alternativo para enviar notificações baseadas em navegador por meio do WNS precisarão ser integrados à Microsoft Store.

O que os canais alternativos permitem?

  • Envie notificações por push brutas para um Windows em execução em qualquer dispositivo Windows. Canais alternativos permitem apenas notificações brutas (no entanto, você ainda pode ativar uma tarefa em segundo plano para mostrar localmente notificações do sistema ou de bloco).
  • Permite que os aplicativos criem vários canais de push brutos para diferentes recursos dentro do aplicativo. Um aplicativo pode criar até 1000 canais alternativos, e cada um é válido por 30 dias. Cada um desses canais pode ser gerenciado ou revogado separadamente pelo aplicativo.
  • Canais de push alternativos podem ser criados sem registrar um aplicativo na Microsoft Store. Se o aplicativo for instalado em dispositivos sem registrá-lo na Microsoft Store, ele ainda poderá receber notificações por push.
  • Os servidores podem enviar notificações por push usando as APIs REST padrão do W3C e o protocolo VAPID. Os canais alternativos usam o protocolo padrão W3C, o que permite simplificar a lógica do servidor que precisa ser mantida.
  • Criptografia de mensagens completa, de ponta a ponta. Embora o canal primário forneça criptografia durante o trânsito, se você quiser ser mais seguro, os canais alternativos permitem que seu aplicativo passe por cabeçalhos de criptografia para proteger uma mensagem.

Limitações de canais alternativos

  • O servidor do aplicativo não pode enviar notificações do tipo push toast, tile ou badge. Você só pode enviar notificações brutas por push. Seu aplicativo ainda pode enviar notificações locais de sua tarefa em segundo plano.
  • Requer uma API REST diferente dos canais de bloco primários ou secundários. Usar a API REST padrão do W3C significa que seu aplicativo precisará ter uma lógica diferente para enviar notificações do sistema ou atualizações de bloco

Criando um canal alternativo

PushNotificationChannel webChannel = 
	await PushNotificationChannelManager.GetDefault().CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsync(applicationServerKey, appChannelId);

Comparação de tipo de canal

Aqui está uma rápida comparação entre os diferentes tipos de canais:

Tipo Empurrar torrada? Empurrar bloco/emblema? Enviar notificações brutas? Autenticação API É necessário registro na loja? Canais Criptografia
Principal Sim Sim - somente bloco primário Sim OAuth WNS REST API Sim Um por aplicativo Em Trânsito
Bloco secundário Não Sim - somente bloco secundário Não OAuth WNS REST API Sim Um por bloco secundário Em Trânsito
Alternativo Não Não Sim INSÍPIDO Padrão WebPush W3C Não 1.000 por aplicativo Em trânsito + criptografia de ponta a ponta possível com passagem de cabeçalho (requer código do aplicativo)

Escolhendo o canal certo

Em geral, recomendamos usar o canal principal em seu aplicativo, com algumas exceções:

  1. Se você estiver enviando uma atualização de bloco para um bloco secundário, use o canal de push de bloco secundário.
  2. Se você estiver distribuindo canais para outros serviços (como no caso de um navegador), use o canal alternativo.
  3. Se você estiver criando um aplicativo que não será listado na Windows Store (como um aplicativo LOB), use um canal alternativo.
  4. Se você tiver um código push da Web existente em seu servidor que deseja reutilizar ou precisar de vários canais em seu serviço de back-end, use canais alternativos.