Esercitazione: eseguire il push di notifiche alle app Windows Phone con Hub di notifica di AzureTutorial: Push notifications to Windows Phone apps by using Azure Notification Hubs

Questa esercitazione descrive come usare Hub di notifica di Azure per inviare notifiche push a un'applicazione per Windows Phone 8 o 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 si usa Windows Phone 8.1 (non Silverlight), fare riferimento alla versione Windows Universal di questa esercitazione.If you are targeting Windows Phone 8.1 (non-Silverlight), see the Windows Universal version of this tutorial.

In questa esercitazione si creerà un'app per Windows Phone 8 vuota che riceve notifiche push tramite il Servizio di notifica Push di Microsoft.In this tutorial, you create a blank Windows Phone 8 app that receives push notifications by using the Microsoft Push Notification Service (MPNS). Dopo aver creato l'app è possibile usare l'hub di notifica per trasmettere le notifiche push a tutti i dispositivi che eseguono l'app.After you create the app, you use your notification hub to broadcast push notifications to all the devices running your app.

Nota

L’SDK Hub di notifica per Windows Phone [AZURE.NOTE] non supporta l'uso di Windows Push Notification Service (WNS) con app per 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. Per usare WNS (invece di MPNS) con le app di Windows Phone 8.1 Silverlight, completare la seguente Esercitazione su Hub di notifica - Windows Phone Silverlightche usa le API 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.

In questa esercitazione si apprenderà come:In this tutorial, you learn how to:

  • Creare un hub di notificaCreate a notification hub
  • Creare un'applicazione di Windows PhoneCreate a Windows Phone application
  • Invio di prova di una notificaTest send a notification

prerequisitiPrerequisites

Il completamento di questa esercitazione costituisce un prerequisito per tutte le altre esercitazioni di Hub notifica relative ad app per Windows Phone 8.Completing this tutorial is a prerequisite for all other Notification Hubs tutorials for Windows Phone 8 apps.

Creare l'hub di notificaCreate your notification hub

  1. Accedere al portale di Azure.Sign in to the Azure portal.

  2. Selezionare Crea una risorsa > Dispositivi mobili > Hub di notifica.Select Create a resource > Mobile > Notification Hub.

    Portale di Azure: creare un hub di notifica

  3. Nella casella Hub di notifica digitare un nome univoco.In the Notification Hub box, type a unique name. Selezionare l'area, la sottoscrizione e il gruppo di risorse (se già disponibili).Select your Region, Subscription, and Resource Group (if you have one already).

    Se non si ha già uno spazio dei nomi del bus di servizio, è possibile usare il nome predefinito, che viene creato in base al nome dell'hub (se lo spazio dei nomi è disponibile).If you don't already have a service bus namespace, you can use the default name, which is created based on the hub name (if the namespace name is available).

    Se si ha già un spazio dei nomi del bus di servizio in cui si vuole creare l'hub, seguire questa proceduraIf you already have a service bus namespace that you want to create the hub in, follow these steps

    a.a. Nell'area Spazio dei nomi selezionare il collegamento Seleziona esistente.In the Namespace area, select the Select Existing link.

    b.b. Selezionare Create.Select Create.

    Portale di Azure: impostare le proprietà dell'hub di notifica

  4. Selezionare Notifiche (icona a forma di campanello) e selezionare Vai alla risorsa.Select Notifications (Bell icon), and select Go to resource.

    Portale di Azure - Notifiche -> Vai alla risorsa

  5. Selezionare Criteri di accesso dall'elenco.Select Access Policies from the list. Prendere nota delle due stringhe di connessione disponibili.Note the two connection strings that are available to you. Sono necessarie in un secondo momento per gestire le notifiche push.You need them to handle push notifications later.

    Importante

    NON usare DefaultFullSharedAccessSignature nell'applicazione.Do NOT use the DefaultFullSharedAccessSignature in your application. Deve essere usato solo nel back-end.This is meant to be used in your back-end only.

    Portale di Azure: stringhe di connessione dell'hub di notifica

Configurare le impostazioni di Windows Phone (MPNS)Configure Windows Phone (MPNS) settings

  1. Selezionare Windows Phone (MPNS) in NOTIFICATION SETTINGS (IMPOSTAZIONI DI NOTIFICA).Select Windows Phone (MPNS) under NOTIFICATION SETTINGS.
  2. Selezionare Enable authentication push (Abilita push di autenticazione).Select Enable authentication push.
  3. Sulla barra degli strumenti selezionare Salva.Select Save on the toolbar.

    Portale di Azure - Abilita notifiche push non autenticate

    L'hub viene creato e configurato per l'invio di notifiche autenticate per Windows Phone.Your hub is now created and configured to send unauthenticated notification for Windows Phone.

    Nota

    In questa esercitazione verrà usato il Servizio notifica Push Microsoft in modalità senza autenticazione.This tutorial uses MPNS in unauthenticated mode. Tale modalità prevede restrizioni in relazione alle notifiche che è possibile inviare a ciascun canale.MPNS unauthenticated mode comes with restrictions on notifications that you can send to each channel. Hub di notifica supporta la modalità di autenticazione con Servizio notifica push Microsoft consentendo di caricare il certificato.Notification Hubs supports MPNS authenticated mode by allowing you to upload your certificate.

Creare un'applicazione di Windows PhoneCreate a Windows Phone application

In questa sezione viene creata un'applicazione Windows Phone che si registra con l'hub di notifica.In this section, you create a Windows Phone application that registers itself with your notification hub.

  1. In Visual Studio creare una nuova applicazione per Windows Phone 8.In Visual Studio, create a new Windows Phone 8 application.

    Visual Studio - Nuovo progetto - App di Windows Phone

    In Visual Studio 2013 Update 2 o versioni successive verrà invece creata un'applicazione per Windows Phone Silverlight.In Visual Studio 2013 Update 2 or later, you instead create a Windows Phone Silverlight application.

    Visual Studio - Nuovo progetto - App vuota - Windows Phone Silverlight

  2. In Visual Studio fare clic con il pulsante destro del mouse sulla soluzione e quindi scegliere Gestisci pacchetti NuGet.In Visual Studio, right-click the solution, and then click Manage NuGet Packages.
  3. Cercare WindowsAzure.Messaging.Managed , quindi fare clic su Installae accettare le condizioni per l'utilizzo.Search for WindowsAzure.Messaging.Managed and click Install, and then accept the terms of use.

    Visual Studio - Gestione pacchetti NuGet

  4. Aprire il file App.xaml.cs e aggiungere le istruzioni using seguenti:Open the file App.xaml.cs and add the following using statements:

     using Microsoft.Phone.Notification;
     using Microsoft.WindowsAzure.Messaging;
    
  5. Aggiungere il codice seguente all'inizio del metodo Application_Launching in 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

    Il valore MyPushChannel è un indice che viene usato per cercare un canale esistente nella raccolta HttpNotificationChannel .The value MyPushChannel is an index that is used to lookup an existing channel in the HttpNotificationChannel collection. Se non è disponibile, creare una nuova voce con lo stesso nome.If there isn't one there, create a new entry with that name.

    Inserire il nome dell'hub e la stringa di connessione denominata DefaultListenSharedAccessSignature e ottenuta nella sezione precedente.Insert the name of your hub and the connection string called DefaultListenSharedAccessSignature that you noted in the previous section. Questo codice consente di recuperare il valore di ChannelURI per l'app dal Servizio di notifica Push di Microsoft e quindi di registrarlo con l'hub di notifica.This code retrieves the channel URI for the app from MPNS, and then registers that channel URI with your notification hub. Garantisce inoltre che il valore di ChannelURI venga registrato nell'hub di notifica a ogni avvio dell'applicazione.It also guarantees that the channel URI is registered in your notification hub each time the application is launched.

    Nota

    In questa esercitazione viene inviata una notifica di tipo avviso popup al dispositivo.This tutorial sends a toast notification to the device. Quando si invia una notifica di tipo riquadro, è invece necessario chiamare il metodo BindToShellTile sul canale.When you send a tile notification, you must instead call the BindToShellTile method on the channel. Per supportare sia la notifica di tipo riquadro che quella di tipo avviso popup, chiamare sia BindToShellTile che BindToShellToast.To support both toast and tile notifications, call both BindToShellTile and BindToShellToast.

  6. In Esplora soluzioni espandere ProprietàWMAppManifest.xml, aprire il file, fare clic sulla scheda Funzionalità e assicurarsi che la funzionalità ID__CAP__PUSH_NOTIFICATION sia selezionata.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. L'app può ora ricevere le notifiche push.Your app can receive push notifications now.

    Visual Studio - Funzionalità delle app di Windows Phone

  7. Premere F5 per eseguire l'app.Press the F5 key to run the app.

    Nell'app verrà visualizzato un messaggio di registrazione.A registration message is displayed in the app.

  8. Chiudere l'app o passare alla home page.Close the app or switch to the home page.

    Nota

    Per ricevere una notifica push di tipo avviso popup, l'applicazione non deve essere in esecuzione in primo piano.To receive a toast push notification, the application must not be running in the foreground.

Invio di prova di una notificaTest send a notification

  1. Nel portale di Azure, passare alla scheda Overview (Informazioni generali).In the Azure portal, switch to the Overview tab.
  2. Selezionare Test Send (Invio di prova).Select Test Send.

    Pulsante Test Send (Invio di prova)

  3. Nella finestra Test Send (Invio di prova) eseguire le operazioni seguenti:In the Test Send window, take the following steps:

    1. Per Platforms (Piattaforme) selezionare Windows Phone.For Platforms, select Windows Phone.
    2. Per Notification Type (Tipo di notifica) selezionare Toast (Avviso popup).For Notification Type, select Toast.
    3. Selezionare Send (Invia)Select Send
    4. Vedere il risultato nell'elenco nella parte inferiore della finestra.See the result in the list at the bottom of the window.

      Finestra Test Send (Invio di prova)

  4. Nell'emulatore di Windows Phone o in Windows Phone verificare che il messaggio di notifica venga visualizzato.In the Windows Phone emulator or on the Windows phone, confirm that you see the notification message.

    Notifica su Windows Phone

Passaggi successiviNext steps

In questo semplice esempio le notifiche push sono state trasmesse a tutti i dispositivi Windows Phone 8.In this simple example, you broadcasted push notifications to all your Windows Phone 8 devices. Per informazioni sulle procedure per eseguire il push di notifiche a dispositivi specifici, passare all'esercitazione seguente:Advance to the following tutorial to learn how to push notifications to specific devices: