Tutorial: Notificações push para aplicações Windows Phone ao utilizar os Hubs de notificação do AzureTutorial: Push notifications to Windows Phone apps by using Azure Notification Hubs

Este tutorial mostra-lhe como utilizar os Notification Hubs do Azure para enviar notificações push para aplicações Windows Phone 8 ou Windows Phone 8.1 Silverlight.This tutorial shows you how to use Azure Notification Hubs to send push notifications to a Windows Phone 8 or Windows Phone 8.1 Silverlight applications. Se o seu foco incide sobre o Windows Phone 8.1 (não Silverlight), veja a versão Universal para Windows deste tutorial.If you are targeting Windows Phone 8.1 (non-Silverlight), see the Windows Universal version of this tutorial.

Neste tutorial, vai criar uma aplicação Windows Phone 8 em branco que recebe notificações push utilizando o Serviço de Notificações Push da Microsoft (MPNS).In this tutorial, you create a blank Windows Phone 8 app that receives push notifications by using the Microsoft Push Notification Service (MPNS). Depois de criar a aplicação, pode utilizar o hub de notificação para difundir notificações push para todos os dispositivos a executar a sua aplicação.After you create the app, you use your notification hub to broadcast push notifications to all the devices running your app.

Nota

O SDK dos Notification Hubs do Windows Phone não suporta a utilização do Serviço de Notificações Push do Windows (WNS) com aplicações do Windows Phone 8.1 Silverlight.The Notification Hubs Windows Phone SDK does not support using the Windows Push Notification Service (WNS) with Windows Phone 8.1 Silverlight apps. Para utilizar o WNS (em vez do MPNS) com aplicações do Windows Phone 8.1 Silverlight, siga o Tutorial dos Hubs de Notificação – Windows Phone Silverlight, que utiliza a APIs REST.To use WNS (instead of MPNS) with Windows Phone 8.1 Silverlight apps, follow the Notification Hubs - Windows Phone Silverlight tutorial, which uses REST APIs.

Neste tutorial, ficará a saber como:In this tutorial, you learn how to:

  • Criar um hub de notificaçãoCreate a notification hub
  • Criar uma aplicação Windows PhoneCreate a Windows Phone application
  • Testar o envio de notificaçõesTest send a notification

Pré-requisitosPrerequisites

A conclusão deste tutorial é um pré-requisito para todos os outros tutoriais de Notification Hubs para aplicações Windows Phone 8.Completing this tutorial is a prerequisite for all other Notification Hubs tutorials for Windows Phone 8 apps.

Criar o Notification HubCreate your notification hub

  1. Inicie sessão no portal do Azure.Sign in to the Azure portal.

  2. Selecione todos os serviços no menu à esquerda e, em seguida, selecione os Hubs de notificação no Mobile secção.Select All services on the left menu, and then select Notification Hubs in the Mobile section. Selecione o ícone de estrela junto ao nome do serviço para adicionar o serviço para o Favoritos secção no menu da esquerda.Select the star icon next to the service name to add the service to the FAVORITES section on the left menu. Depois de adicionar os Hubs de notificação ao Favoritos, selecione-o no menu da esquerda.After you add Notification Hubs to FAVORITES, select it on the left menu.

    Portal do Azure – selecione os Hubs de notificação

  3. Sobre o os Hubs de notificação página, selecione Add na barra de ferramentas.On the Notification Hubs page, select Add on the toolbar.

    Os Hubs de notificação - adicionar botão de barra de ferramentas

  4. Sobre o Hub de notificação página, efetue os seguintes passos:On the Notification Hub page, do the following steps:

    1. Introduza um nome na Hub de notificação.Enter a name in Notification Hub.

    2. Introduza um nome na criar um novo namespace.Enter a name in Create a new namespace. Um espaço de nomes contém um ou mais hubs.A namespace contains one or more hubs.

    3. Selecione um valor de localização caixa de lista pendente.Select a value from the Location drop-down list box. Este valor Especifica a localização na qual pretende criar o hub.This value specifies the location in which you want to create the hub.

    4. Selecione um grupo de recursos existente no grupo de recursos, ou criar um nome para um novo grupo de recursos.Select an existing resource group in Resource Group, or create a name for a new resource group.

    5. Selecione Criar.Select Create.

      Portal do Azure – definir as propriedades do hub de notificação

  5. Selecione notificações (o ícone de sino) e, em seguida, selecione Ir para recurso.Select Notifications (the bell icon), and then select Go to resource. Pode também atualizar a lista a os Hubs de notificação página e selecione o seu hub.You can also refresh the list on the Notification Hubs page and select your hub.

    Portal do Azure - notificações -> Ir para o recurso

  6. Selecione Políticas de Acesso na lista.Select Access Policies from the list. Tenha em atenção que as duas cadeias de ligação estão disponíveis para.Note that the two connection strings are available to you. Irá precisar posteriormente para processar as notificações push.You'll need them later to handle push notifications.

    Importante

    Fazer não utilizar o DefaultFullSharedAccessSignature política na sua aplicação.Do not use the DefaultFullSharedAccessSignature policy in your application. Isso se destina a ser utilizado no seu back-end.This is meant to be used in your back end only.

    Portal do Azure – cadeias de ligação do hub de notificação

Configurar as definições do Windows Phone (MPNS)Configure Windows Phone (MPNS) settings

  1. Selecione Windows Phone (MPNS) em DEFINIÇÕES DE NOTIFICAÇÃO.Select Windows Phone (MPNS) under NOTIFICATION SETTINGS.

  2. Selecione Ativar autenticação push.Select Enable authentication push.

  3. Selecione Guardar na barra de ferramentas.Select Save on the toolbar.

    Portal do Azure – Ativar notificações push não autenticadas

    O seu hub já está criado e configurado para enviar notificações não autenticadas para Windows Phone.Your hub is now created and configured to send unauthenticated notification for Windows Phone.

    Nota

    Este tutorial utiliza MPNS no modo não autenticado.This tutorial uses MPNS in unauthenticated mode. O modo MPNS não autenticado vem com restrições quanto às notificações que pode enviar para cada canal.MPNS unauthenticated mode comes with restrictions on notifications that you can send to each channel. Os Notification Hubs suportam o Modo MPNS autenticado ao permitirem-lhe carregar o seu certificado.Notification Hubs supports MPNS authenticated mode by allowing you to upload your certificate.

Criar uma aplicação Windows PhoneCreate a Windows Phone application

Nesta secção, vai criar uma aplicação Windows Phone que efetua o próprio registo no hub de notificação.In this section, you create a Windows Phone application that registers itself with your notification hub.

  1. No Visual Studio, crie uma nova aplicação do Windows Phone 8.In Visual Studio, create a new Windows Phone 8 application.

    Visual Studio – Novo Projeto – Aplicação do Windows Phone

    No Visual Studio 2013 Update 2 ou posterior crie, em vez disso, uma aplicação Silverlight do Windows Phone.In Visual Studio 2013 Update 2 or later, you instead create a Windows Phone Silverlight application.

    Visual Studio – Novo Projeto – Aplicação em Branco – Windows Phone Silverlight

  2. No Visual Studio, clique com o botão direito do rato na solução e, em seguida, clique em Gerir Pacotes NuGet.In Visual Studio, right-click the solution, and then click Manage NuGet Packages.

  3. Procure WindowsAzure.Messaging.Managed, clique em Instalar e aceite os termos de utilização.Search for WindowsAzure.Messaging.Managed and click Install, and then accept the terms of use.

    Visual Studio – Gestor de Pacotes NuGet

  4. Abra o ficheiro App,xaml.cs e adicione as seguintes instruções using:Open the file App.xaml.cs and add the following using statements:

     using Microsoft.Phone.Notification;
     using Microsoft.WindowsAzure.Messaging;
    
  5. Adicione o seguinte código na parte superior Application_Launching método na App.xaml.cs:Add the following code at the top of Application_Launching method in App.xaml.cs:

    private void Application_Launching(object sender, LaunchingEventArgs e)
    {
    
        var channel = HttpNotificationChannel.Find("MyPushChannel");
        if (channel == null)
        {
            channel = new HttpNotificationChannel("MyPushChannel");
            channel.Open();
            channel.BindToShellToast();
        }
    
        channel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(async (o, args) =>
        {
            var hub = new NotificationHub("<hub name>", "<connection string>");
            var result = await hub.RegisterNativeAsync(args.ChannelUri.ToString());
    
            System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                MessageBox.Show("Registration :" + result.RegistrationId, "Registered", MessageBoxButton.OK);
            });
        });
    }
    

    Nota

    O valor MyPushChannel é um índice que é utilizado para pesquisar um canal existente na HttpNotificationChannel coleção.The value MyPushChannel is an index that is used to lookup an existing channel in the HttpNotificationChannel collection. Se não existir, crie uma nova entrada com esse nome.If there isn't one there, create a new entry with that name.

    Inserir o nome do seu hub e a cadeia de ligação denominado DefaultListenSharedAccessSignature que anotou na secção anterior.Insert the name of your hub and the connection string called DefaultListenSharedAccessSignature that you noted in the previous section. Este código obtém o URI do canal para a aplicação a partir do MPNS e, em seguida, regista esse URI de canal no Notification Hub.This code retrieves the channel URI for the app from MPNS, and then registers that channel URI with your notification hub. Esta ação garante também que o URI do canal é registado no Notification Hub sempre que a aplicação for iniciada.It also guarantees that the channel URI is registered in your notification hub each time the application is launched.

    Nota

    Este tutorial envia um alerta de notificação para o dispositivo.This tutorial sends a toast notification to the device. Quando envia uma notificação de mosaico, em vez disso, tem de chamar o BindToShellTile método no canal.When you send a tile notification, you must instead call the BindToShellTile method on the channel. Para suportar o alerta e notificações de mosaico, chame BindToShellTile e BindToShellToast.To support both toast and tile notifications, call both BindToShellTile and BindToShellToast.

  6. No Explorador de Soluções, expanda Propriedades, abra o WMAppManifest.xml ficheiro, clique no separador Capacidades e verifique se a capacidade ID_CAP_PUSH_NOTIFICATION está selecionada.In Solution Explorer, expand Properties, open the WMAppManifest.xml file, click the Capabilities tab, and make sure that the ID_CAP_PUSH_NOTIFICATION capability is checked. Agora, a aplicação pode receber notificações push.Your app can receive push notifications now.

    Visual Studio – Capacidades das Aplicações Windows Phone

  7. Prima a tecla F5 para executar a aplicação.Press the F5 key to run the app. É apresentada na aplicação uma mensagem de registo.A registration message is displayed in the app.

  8. Feche a aplicação ou mude para a home page.Close the app or switch to the home page.

    Nota

    Para receber um alerta de notificação push, a aplicação não pode estar a ser executada em primeiro plano.To receive a toast push notification, the application must not be running in the foreground.

Testar o envio de notificaçõesTest send a notification

  1. No portal do Azure, mude para o separador Descrição Geral.In the Azure portal, switch to the Overview tab.

  2. Selecione Testar Envio.Select Test Send.

    Botão Testar Envio

  3. Na janela Testar Envio, siga os passos abaixo:In the Test Send window, take the following steps:

    1. Para Plataformas, selecione Windows Phone.For Platforms, select Windows Phone.

    2. Para Tipo de Notificação, selecione Alerta.For Notification Type, select Toast.

    3. Selecione EnviarSelect Send

    4. Veja o resultado na lista na parte inferior da janela.See the result in the list at the bottom of the window.

      Janela Testar Envio

  4. No emulador do Windows Phone ou no Windows Phone, confirme que vê a mensagem de notificação.In the Windows Phone emulator or on the Windows phone, confirm that you see the notification message.

    Notificação no Windows Phone

Passos SeguintesNext steps

Neste exemplo simples, difundiu notificações push para todos os seus dispositivos Windows Phone 8.In this simple example, you broadcasted push notifications to all your Windows Phone 8 devices. Avance para o tutorial seguinte para saber como enviar notificações push para dispositivos específicos:Advance to the following tutorial to learn how to push notifications to specific devices: