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

Neste tutorial, vai criar um hub de notificação para enviar notificações push para uma aplicação da Plataforma Universal do Windows (UWP). Vai criar uma aplicação da Loja Windows em branco que recebe notificações push com o Serviço de Notificações Push do Windows (WNS). Em seguida, você usa seu hub de notificação para transmitir notificações por push para todos os dispositivos que estão executando seu aplicativo.

Nota

O código concluído deste artigo está disponível no GitHub.

Siga os seguintes passos:

  • Criar uma aplicação na Loja Windows
  • Criar um hub de notificação
  • Criar uma aplicação do Windows de exemplo
  • Enviar notificações de teste

Pré-requisitos

  • Subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta do Azure gratuita antes de começar.
  • Microsoft Visual Studio 2017 ou posterior. O exemplo neste tutorial usa o Visual Studio 2019.
  • Ferramentas de desenvolvimento de aplicações do UWP instaladas
  • Uma conta ativa da Loja Windows
  • Confirme se a configuração Obter notificações de aplicativos e outros remetentes está ativada.
    • Inicie a janela Configurações no seu computador.
    • Selecione o bloco Sistema .
    • Selecione Notificações e ações no menu à esquerda.
    • Confirme se a configuração Obter notificações de aplicativos e outros remetentes está ativada. Se não estiver ativado, ative-o.

A conclusão deste tutorial é um pré-requisito para todos os outros tutoriais dos Hubs de Notificação para aplicações do UWP.

Criar uma aplicação na Loja Windows

Nota

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

Para enviar notificações push para aplicações do UWP, associe a aplicação à Loja Windows. Em seguida, configure o Hub de Notificação para se integrar no WNS.

  1. Navegue para o Windows Dev Center, inicie sessão com a sua conta Microsoft e selecione Criar uma nova aplicação.

    New app button

  2. Escreva um nome para a aplicação e selecione Reservar nome do produto. Desta forma, é criado um registo novo da Loja Windows para a sua aplicação.

    Store app name

  3. Expanda Gerenciamento de produtos e selecione Identidade do produto. Anote os valores SID do pacote, 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 aplicativos. Inicie sessão com a sua conta Microsoft. A página de registo da aplicação é aberta num novo separador.

    WNS page

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

    Notification Hub settings on Azure portal

  6. Na página Certificados & segredos, em Segredos do cliente, selecione Novo segredo do cliente. Depois de criar um segredo do cliente (também chamado de segredo do aplicativo), tome nota dele antes de sair da página.

    Aviso

    Você só pode visualizar os valores de segredo do cliente (segredo do aplicativo) imediatamente após criá-los. Certifique-se de salvar o segredo antes de sair da página.

    Client secret on portal

    Aviso

    O segredo da aplicação e o SID do pacote são credenciais de segurança importantes. Não partilhe estes valores com ninguém e não os distribua com a aplicação.

Criar um Hub de Notificação

  1. Inicie sessão no portal do Azure.

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

  3. Digite Hubs de Notificação na caixa de texto Serviços defiltro . Selecione o ícone de estrela ao lado do nome do serviço para adicionar o serviço à 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ção, selecione Criar na barra de ferramentas.

    A screenshot showing how to create a new notification hub.

  5. Na guia Noções básicas na página Hub de Notificação, execute as seguintes etapas:

    1. Em Subscrição, selecione o nome da subscrição do Azure que pretende utilizar e, em seguida, selecione um grupo de recursos existente ou crie um novo.

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

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

    4. Selecione um valor na caixa de listagem suspensa Local . Esse valor especifica o local no qual você deseja criar o hub.

      Screenshot showing notification hub details.

    5. Reveja 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 uma funcionalidade paga, pelo que é adicionada uma taxa adicional ao seu nível.

    6. Escolha uma opção de recuperação de desastres: 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 em uma lista de regiões de recuperação.

      Screenshot showing availability zone details.

    7. Selecione Criar.

  6. Quando a implantação estiver concluída, selecione Ir para recurso.

Configurar as definições de WNS para o hub

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

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

  3. Clique em Guardar na barra de ferramentas.

    The Package SID and Security Key boxes

O seu hub de notificação está agora configurado para funcionar com o WNS. Tem as cadeias de ligação para registar a sua aplicação e enviar notificações.

Criar uma aplicação do Windows de exemplo

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

  2. Na caixa de diálogo Criar um novo 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 (Universal Windows) e selecione Avançar.

      New Project dialog

    3. Na caixa de diálogo Configurar seu novo projeto, insira um nome de projeto e um local para os arquivos de projeto.

    4. Selecione Criar.

  3. Aceite as predefinições para as versões de destino e mínimas da plataforma e selecione OK.

  4. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto de aplicativo da Windows Store, selecione Publicar e selecione Associar Aplicativo à Loja. É apresentado o assistente Associar aplicação à Loja Windows.

  5. No assistente, inicie sessão com a sua conta Microsoft.

  6. Selecione a aplicação que registou no passo 2, selecione Seguinte e, por fim, Associar. Desta forma, é adicionado ao manifesto da aplicação as informações de registo da Loja Windows necessárias.

  7. No Visual Studio, clique com o botão direito do rato na solução e, em seguida, Selecione Gerir Pacotes NuGet. É aberta a janela Gerir Pacotes NuGet.

  8. Na caixa de pesquisa, introduza WindowsAzure.Messaging.Managed, selecione Instalar e aceite os termos de utilização.

    The Manage NuGet Packages window

    Esta ação transfere, instala e adiciona uma referência ao à biblioteca dos Hubs de Notificação do Azure para Windows mediante a utilização do Pacote NuGet Microsoft.Azure.Notification Hubs.

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

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

    Este código obtém o URI do canal para a aplicação a partir do WNS e, em seguida, regista esse URI de canal no Notification Hub.

    Nota

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

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

    InitNotificationsAsync();
    

    Essa ação garante que o URI do canal seja registrado em seu hub de notificação sempre que o aplicativo for iniciado.

  12. Clique com o Package.appxmanifest botão direito do mouse e selecione Exibir código (F7). Localize <Identity .../> e substitua o valor Name pelo valor Package/Identity/Name e substitua seu valor Publisher pelo valor Package/Identity/Publisher do aplicativo criado anteriormente.

  13. Para executar o aplicativo, pressione a tecla F5 do teclado. Será exibida uma caixa de diálogo contendo a chave de registro. Para fechar a caixa de diálogo, clique em OK.

    Registration successful

A aplicação já está pronta para receber notificações de alerta.

Enviar notificações de teste

Pode testar rapidamente a receção das notificações na sua aplicação ao enviar notificações no portal do Azure.

  1. No portal do Azure, mude para o separador Descrição Geral e selecione Testar Envio na barra de ferramentas.

    Test Send button

  2. Na janela Testar Envio, efetue as ações abaixo:

    1. Para Plataformas, selecione Windows.

    2. Para Tipo de Notificação, selecione Alerta.

    3. Selecione Enviar.

      The Test Send pane

  3. Veja o resultado da operação Enviar na lista Resultado na parte inferior da janela. Também pode ver uma mensagem de alerta.

    Result of Send operation

  4. Veja a mensagem de notificação: Mensagem de teste no ambiente de trabalho.

    Notification message

Próximos passos

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