Tutorial: Enviar notificações para aplicativos da Plataforma Universal do Windows usando Hubs de Notificação do Azure

Neste tutorial, você cria um hub de notificação para enviar notificações por push para um aplicativo da Plataforma Universal do Windows (UWP). Você cria um aplicativo da Windows Store em branco que recebe notificações por push usando o serviço WNS (Notificação por Push do Windows). Em seguida, use seu hub de notificação para transmitir notificações por push a todos os dispositivos que estão executando seu aplicativo.

Observação

Você pode encontrar o código completo deste tutorial no GitHub.

Siga estas etapas:

  • Criar um aplicativo na Windows Store
  • Criar um hub de notificação
  • Criar um aplicativo de exemplo do Windows
  • Enviar notificações de teste

Pré-requisitos

  • Assinatura do Azure. Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
  • Microsoft Visual Studio 2017 ou posterior. Os exemplos neste tutorial usam o Visual Studio 2019.
  • Ferramentas de desenvolvimento de aplicativos UWP instaladas
  • Uma conta ativa da Windows Store
  • Confirme que a opção Obter notificações de aplicativos e outros remetentes está habilitada.
    • Inicie a janela Configurações em seu computador.
    • Selecione o bloco Sistema.
    • Selecione Notificações e ações no menu à esquerda.
    • Confirme que a opção Obter notificações de aplicativos e outros remetentes está habilitada. Se ela não estiver, habilite-a.

A conclusão deste tutorial é um pré-requisito para todos os outros tutoriais sobre os Hubs de Notificação para aplicativos do UWP.

Criar um aplicativo na Windows Store

Observação

O MPNS (Serviço de Notificação por Push da Microsoft) foi preterido e não tem mais suporte.

Para enviar notificações por push para aplicativos da UWP, associe seu aplicativo à Windows Store. Em seguida, configure seu Hub de Notificação para se integrar ao WNS.

  1. Navegue até o Centro de Desenvolvimento do Windows, entre com sua conta da Microsoft e selecione Criar um novo aplicativo.

    New app button

  2. Digite um nome para seu aplicativo e selecione Reservar nome do produto. Isso cria um novo registro da Windows Store para seu aplicativo.

    Store app name

  3. Expanda Gerenciamento de produtos e, em seguida, selecione Identidade do Produto. Anote os valores Package SID, Package/Identity/Name, Package/Identity/Publisher e Package/Properties/PublisherDisplayName.

    Partner center apps

  4. Em Gerenciamento de produtos, selecione WNS/MPNS e, em seguida, selecione Portal de Registro de Aplicativo. Entre na sua conta da Microsoft. A página de registro de aplicativo é aberta em uma nova guia.

    WNS page

  5. Em Essenciais, selecione Credenciais do cliente: adicionar um certificado ou segredo.

    Notification Hub settings on Azure portal

  6. Na página de Certificados e segredos, em Segredos do cliente, escolha Novo segredo do cliente. Depois de criar um segredo do cliente (também chamado de segredo do aplicativo), anote-o antes de sair da página.

    Aviso

    Você só pode exibir valores do segredo do cliente (segredo do aplicativo) imediatamente após a criação deles. Salve o segredo antes de sair da página.

    Client secret on portal

    Aviso

    O segredo do aplicativo e o SID do pacote são credenciais de segurança importantes. Não compartilhe esses valores com ninguém nem os distribua com seu aplicativo.

Criar um hub de notificação

  1. Entre no portal do Azure.

  2. Selecione Todos os serviços no menu esquerdo. A screenshot showing select All Services for an existing namespace.

  3. Digite Hubs de Notificação na caixa de texto Filtrar serviços. Selecione o ícone de estrela ao lado do nome do serviço para adicionar o serviço na seção FAVORITOS no menu à esquerda. Selecione Hubs de Notificação.

    A screenshot showing how to filter for notification hubs.

  4. Na página Hubs de Notificações, selecione Criar na barra de ferramentas.

    A screenshot showing how to create a new notification hub.

  5. Na guia Informações Básicas da página Hub de Notificações, execute as seguintes etapas:

    1. Em Assinatura, selecione o nome da assinatura do Azure que deseja usar e escolha um grupo de recursos existente ou crie um.

    2. Insira um nome exclusivo para o novo namespace em Detalhes do Namespace.

    3. Um namespace contém um ou mais hubs de notificações. Portanto, digite um nome para o hub em Detalhes do Hub de Notificações.

    4. Selecione um valor da caixa de listagem suspensa Local. Esse valor especifica a localização na qual você deseja criar o hub.

      Screenshot showing notification hub details.

    5. Revise a opção Zonas de Disponibilidade. Se você escolher uma região que tenha zonas de disponibilidade, a caixa de seleção será marcada por padrão. As Zonas de Disponibilidade são um recurso pago, portanto, um valor adicional será acrescentado à sua camada de serviço.

    6. Escolha uma opção de Recuperação de desastre: Nenhuma, Região de recuperação emparelhada ou Região de recuperação flexível. Se você escolher Região de recuperação emparelhada, a região de failover será exibida. Se você selecionar Região de recuperação flexível, use a lista suspensa para escolher entre uma lista de regiões de recuperação.

      Screenshot showing availability zone details.

    7. Selecione Criar.

  6. Após a conclusão da implantação, selecione Ir para o recurso.

Definir as configurações WNS para o hub

  1. Na categoria CONFIGURAÇÕES DE NOTIFICAÇÃO, selecione Windows (WNS) .

  2. Insira valores para o SID do pacote (como este "ms-app://<Your Package SID>") e a Chave de segurança (o Segredo do Aplicativo) que você anotou na seção anterior.

  3. Clique em Salvar na barra de ferramentas.

    The Package SID and Security Key boxes

O hub de notificação agora está configurado para trabalhar com WNS. Você tem as cadeias de conexão para registrar seu aplicativo e enviar notificações.

Criar um aplicativo de exemplo do Windows

  1. No Visual Studio, abra o menu Arquivo, selecione Novo e, em seguida, Projeto.

  2. Na caixa de diálogo Criar um projeto, conclua as seguintes etapas:

    1. Na caixa de pesquisa na parte superior, digite Windows Universal.

    2. Nos resultados da pesquisa, selecione Aplicativo em Branco (Windows Universal) e, em seguida, selecione Avançar.

      New Project dialog

    3. Na caixa de diálogo Configurar seu novo projeto, insira um Nome do projeto e um Local para os arquivos do projeto.

    4. Selecione Criar.

  3. Aceite os padrões para as versões mínima e de destino da plataforma e selecione OK.

  4. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto do aplicativo da Microsoft Store, selecione Publicar e selecione Associar aplicativo à Store. O assistente Associar seu aplicativo à Windows Store é exibido.

  5. No assistente, entre com sua conta da Microsoft.

  6. Selecione o aplicativo que você registrou na etapa 2, selecione Avançare selecione Associar. Isso adiciona as informações de registro necessárias da Windows Store para o manifesto do aplicativo.

  7. No Visual Studio, clique com o botão direito do mouse na solução e selecione Gerenciar Pacotes NuGet. A janela Gerenciar Pacotes NuGet é aberta.

  8. Na caixa de pesquisa, digite WindowsAzure.Messaging.Managed, selecione Instalare aceite os termos de uso.

    The Manage NuGet Packages window

    Essa ação baixa, instala e adiciona uma referência à biblioteca dos Hubs de Notificação do Azure para Windows usando o pacote NuGet Microsoft.Azure.NotificationHubs.

  9. Abra o arquivo de projeto App.xaml.cs e adicione as seguintes instruções:

    using Windows.Networking.PushNotifications;
    using Microsoft.WindowsAzure.Messaging;
    using Windows.UI.Popups;
    
  10. No arquivo App.xaml.cs do projeto, localize a classe App e adicione a seguinte definição de método InitNotificationsAsync. Substitua <your hub name> pelo nome do hub de notificação criado na portal do Azure e substitua <Your DefaultListenSharedAccessSignature connection string> pela cadeia de conexão DefaultListenSharedAccessSignature da página Políticas de Acesso do hub de notificação:

    private async void InitNotificationsAsync()
    {
        var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
    
        var hub = new NotificationHub("<your hub name>", "<Your DefaultListenSharedAccessSignature connection string>");
        var result = await hub.RegisterNativeAsync(channel.Uri);
    
        // Displays the registration ID so you know it was successful
        if (result.RegistrationId != null)
        {
            var dialog = new MessageDialog("Registration successful: " + result.RegistrationId);
            dialog.Commands.Add(new UICommand("OK"));
            await dialog.ShowAsync();
        }
    }
    

    Esse código recupera no WNS o URI do canal para o aplicativo e registra esse URI do canal no hub de notificação.

    Observação

    Substitua o espaço reservado hub name pelo nome do hub de notificação que aparece no portal do Azure. Além disso, substitua o espaço reservado da cadeia de conexão pela cadeia de conexão DefaultListenSharedAccessSignature obtida na página Políticas de Acesso do seu hub de notificação em uma seção anterior.

  11. Na parte superior do manipulador de eventos OnLaunched no App.xaml.cs, adicione a seguinte chamada ao novo método InitNotificationsAsync:

    InitNotificationsAsync();
    

    Essa ação faz com que o URI do canal seja registrado em seu hub de notificação toda vez que o aplicativo for iniciado.

  12. Clique com o botão direito do mouse em Package.appxmanifest e selecione Exibir Código (F7). Localize <Identity .../> e substitua o valor de Nome pelo Package/Identity/Name e substitua seu valor de Publisher pelo valor de Package/Identity/Name do aplicativo que você criou anteriormente.

  13. Para executar o aplicativo, pressione a tecla F5 do teclado. Uma caixa de diálogo que contém a chave de registro será exibida. Para fechar a caixa de diálogo, clique em OK.

    Registration successful

Seu aplicativo agora está pronto para receber notificações do sistema.

Enviar notificações de teste

Você pode testar rapidamente o recebimento de notificações em seu aplicativo enviando notificações no portal do Azure.

  1. No portal do Azure, alterne para a guia de visão geral e selecione Envio de teste na barra de ferramentas.

    Test Send button

  2. Na janela Envio de teste, execute as seguintes ações:

    1. Para Plataformas, selecione Windows.

    2. Para Tipo de notificação, selecione Notificação do sistema.

    3. Selecione Enviar.

      The Test Send pane

  3. Veja o resultado da operação de envio na lista Resultados na parte inferior da janela. Você também pode ver uma mensagem de alerta.

    Result of Send operation

  4. Você verá a mensagem de notificação: Mensagem de teste na área de trabalho.

    Notification message

Próximas etapas

Você enviou notificações para todos os seus dispositivos Windows usando o portal ou um aplicativo de console. Para saber como enviar notificações por push a dispositivos específicos, avance ao seguinte tutorial: