Introduzione a Hub di notifica per le app UWPGet started with Notification Hubs for Universal Windows Platform apps

PanoramicaOverview

Questo articolo illustra come usare Hub di notifica di Azure per inviare notifiche push a un'app UWP (Universal Windows Platform).This article shows you how to use Azure Notification Hubs to send push notifications to a Universal Windows Platform (UWP) app.

In questo articolo si crea un'app di Windows Store vuota che riceve notifiche push tramite Servizi notifica Push Windows (WNS).In this article, you create a blank Windows Store app that receives push notifications by using the Windows Push Notification Service (WNS). Al termine, sarà possibile usare l'hub di notifica per trasmettere notifiche push a tutti i dispositivi che eseguono l'app.When you're finished, you can use your notification hub to broadcast push notifications to all devices that are running your app.

Prima di iniziareBefore you begin

Obiettivo di questo articolo è consentire di iniziare a usare Hub di notifica di Azure il prima possibile.The goal of this article is to help you get started using Azure Notification Hubs as quickly as possible. L'articolo presenta uno scenario di trasmissione molto semplice che illustra i concetti di base di Hub di notifica.The article presents a very simple broadcast scenario that focuses on the basic concepts of Notification Hubs.

Se si ha già familiarità con Hub di notifica, è possibile selezionare un altro argomento nel riquadro di spostamento a sinistra o passare agli articoli pertinenti nella sezione "Passaggi successivi".If you are already familiar with Notification Hubs, you might want to select another topic from the left navigation or go to the relevant articles in the "Next steps" section.

I commenti e suggerimenti inviati verranno presi seriamente in considerazione.We take your feedback seriously. Se si riscontrano difficoltà nel completare questo argomento o si hanno suggerimenti per migliorarne il contenuto, è possibile lasciare un commento alla fine dell'articolo.If you have any difficulty completing this topic, or if you have recommendations for improving this content, we invite you to provide feedback at the end of the article.

Il codice completo per questa esercitazione è disponibile in GitHub.You can find the completed code for this tutorial on GitHub.

PrerequisitiPrerequisites

Per completare questa esercitazione, è necessario disporre di:This tutorial requires the following:

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

Registrare l'app di Windows StoreRegister your app for the Windows Store

Per inviare notifiche push ad app UWP, associare l'app a Windows Store.To send push notifications to UWP apps, associate your app to the Windows Store. Configurare quindi l'hub di notifica per l'integrazione con WNS.Then, configure your notification hub to integrate with WNS.

  1. Se l'app non è ancora stata registrata, passare a Windows Dev Center, accedere con il proprio account Microsoft e quindi selezionare Crea una nuova app.If you have not already registered your app, navigate to the Windows Dev Center, sign in with your Microsoft account, and then select Create a new app.

  2. Digitare un nome per l'app e quindi selezionare Riserva nome dell'app.Type a name for your app, and then select Reserve app name. Verrà così creata una nuova registrazione a Windows Store per l'app.Doing so creates a new Windows Store registration for your app.

  3. In Visual Studio creare un nuovo progetto di app di Windows Store in Visual C# usando il modello App vuota per la piattaforma UWP e quindi selezionare OK.In Visual Studio, create a new Visual C# Store apps project by using the UWP Blank App template, and then select OK.

  4. Accettare le impostazioni predefinite per le versioni minima e di destinazione della piattaforma.Accept the defaults for the target and minimum platform versions.

  5. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto di app di Windows Store, scegliere Store e quindi selezionare Associa applicazione a Store.In Solution Explorer, right-click the Windows Store app project, select Store, and then select Associate App with the Store.
    Viene visualizzata la procedura guidata Associa l'applicazione con Windows Store .The Associate Your App with the Windows Store wizard appears.

  6. Nella procedura guidata accedere con il proprio account Microsoft.In the wizard, sign in with your Microsoft account.

  7. Selezionare l'app registrata nel passaggio 2, quindi Avanti e infine Associa.Select the app that you registered in step 2, select Next, and then select Associate. Le informazioni di registrazione a Windows Store necessarie verranno così aggiunte al manifesto dell'applicazione.Doing so adds the required Windows Store registration information to the application manifest.

  8. Nella pagina di Windows Dev Center per la nuova app selezionare Servizi, quindi Notifiche push e infine WNS/MPNS.Back on the Windows Dev Center page for your new app, select Services, select Push notifications, and then select WNS/MPNS.

  9. Selezionare Nuova notifica.Select New Notification.

  10. Selezionare il modello Blank (Toast) (Vuoto - Avviso popup) e quindi OK.Select Blank (Toast) template, and then select OK.

  11. Immettere un nome per la notifica e un messaggio di contesto visivo e quindi selezionare Salva come bozza.Enter a notification Name and Visual Context message, and then select Save as draft.

  12. Passare al portale di registrazione delle applicazioni ed eseguire l'accesso.Go to the Application Registration Portal and sign in.

  13. Selezionare il nome dell'applicazione.Select your application name. Nelle impostazioni della piattaforma Windows Store prendere nota della password di Segreto dell'applicazione e dell'ID di sicurezza (SID) del pacchetto.In Windows Store platform settings, note the Application Secret password and the Package security identifier (SID).

    Avviso

    Il segreto applicazione e il SID di pacchetto sono importanti credenziali di sicurezza.The application secret and package SID are important security credentials. Non condividere questi valori con altri utenti né distribuirli con l'app.Do not share these values with anyone or distribute them with your app.

Configurare l'hub di notificaConfigure your notification hub

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

  2. Selezionare Nuovo > Web e dispositivi mobili > Hub di notifica.Select New > Web + 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 si ha già un spazio dei nomi del bus di servizio in cui si vuole creare l'hub, seguire questa procedura:If you already have a service bus namespace that you want to create the hub in, do the following:

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

    b.b. Selezionare Crea.Select Create.

    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).

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

    Dopo avere creato lo spazio dei nomi e l'hub di notifica, viene aperto il portale di Azure.After you've created the namespace and notification hub, the Azure portal opens.

    Portale di Azure: pagina del portale dell'hub di notifica

  4. Selezionare Impostazioni > Criteri di accesso.Select Settings > Access Policies. Prendere nota delle due stringhe di connessione disponibili.Note the two connection strings that are available to you. Saranno necessarie in un secondo momento per gestire le notifiche push.You will need them to handle push notifications later.

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

  1. Selezionare Servizi di notifica > Windows (WNS) e quindi immettere la password del segreto dell'applicazione nella casella Chiave di sicurezza.Select Notification Services > Windows (WNS), and then enter the application secret password in the Security Key box. Nella casella SID pacchetto immettere il valore ottenuto da WNS nella sezione precedente e quindi selezionare Salva.In the Package SID box, enter the value that you obtained from WNS in the previous section, and then select Save.

Caselle SID pacchetto e Chiave di sicurezza

L'hub di notifica è ora configurato per l'uso di WNS.Your notification hub is now configured to work with WNS. Sono disponibili le stringhe di connessione per la registrazione dell'app e l'invio di notifiche.You have the connection strings to register your app and send notifications.

Connettere l'app all'hub di notificaConnect your app to the notification hub

  1. 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 select Manage NuGet Packages.
    Verrà visualizzata la finestra Gestisci pacchetti NuGet.The Manage NuGet Packages window opens.

  2. Nella casella di ricerca immettere WindowsAzure.Messaging.Managed, selezionare Installa e accettare le condizioni per l'utilizzo.In the search box, enter WindowsAzure.Messaging.Managed, select Install, and accept the terms of use.

    Finestra Gestisci pacchetti NuGet

    Questa azione esegue il download, l'installazione e l'aggiunta di un riferimento alla libreria di messaggistica di Azure per Windows con il pacchetto NuGet WindowsAzure.Messaging.Managed.This action downloads, installs, and adds a reference to the Azure messaging library for Windows by using the WindowsAzure.Messaging.Managed NuGet package.

  3. Aprire il file di progetto App.xaml.cs e aggiungere le istruzioni using seguenti:Open the App.xaml.cs project file, and add the following using statements:

     using Windows.Networking.PushNotifications;
     using Microsoft.WindowsAzure.Messaging;
     using Windows.UI.Popups;
    
  4. In App.xaml.cs, aggiungere alla classe App la definizione del metodo InitNotificationsAsync seguente:In App.xaml.cs, also add to the App class the following InitNotificationsAsync method definition:

     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();
         }
    
     }
    

    Questo codice recupera il valore di ChannelURI per l'app da Servizi notifica Push Windows e quindi lo registra con l'hub di notifica.This code retrieves the channel URI for the app from WNS, and then registers that channel URI with your notification hub.

    Nota

    • Sostituire il segnaposto hub name con il nome dell'hub di notifica visualizzato nel portale di Azure.Replace the hub name placeholder with the name of the notification hub that appears in the Azure portal.
    • Sostituire anche il segnaposto relativo alla stringa di connessione con la stringa di connessione DefaultListenSharedAccessSignature ottenuta nella pagina Criteri di accesso dell'hub di notifica in una sezione precedente.Also replace the connection string placeholder with the DefaultListenSharedAccessSignature connection string that you obtained from the Access Polices page of your notification hub in a previous section.
  5. All'inizio del gestore dell'evento OnLaunched in App.xaml.cs, aggiungere la chiamata seguente al nuovo metodo InitNotificationsAsync:At the top of the OnLaunched event handler in App.xaml.cs, add the following call to the new InitNotificationsAsync method:

     InitNotificationsAsync();
    

    Questa azione garantisce la registrazione dell'URI di canale nell'hub di notifica a ogni avvio dell'applicazione.This action guarantees that the channel URI is registered in your notification hub each time the application is launched.

  6. Per eseguire l'app, premere F5.To run the app, select the F5 key. Verrà visualizzata una finestra di dialogo contenente la chiave di registrazione.A dialog box that contains the registration key is displayed.

L'app è ora pronta per ricevere notifiche di tipo avviso popup.Your app is now ready to receive toast notifications.

Inviare notificheSend notifications

È possibile testare rapidamente la ricezione di notifiche nell'app inviando notifiche nel portale di Azure.You can quickly test receiving notifications in your app by sending notifications in the Azure portal. Usare il pulsante Invio di prova nell'hub di notifica, come illustrato nell'immagine seguente:Use the Test Send button on the notification hub, as shown in the following image:

Riquadro Invio di prova

Le notifiche push vengono in genere inviate in un servizio back-end come Servizi mobili o ASP.NET usando una libreria compatibile.Push notifications are normally sent in a back-end service like Mobile Services or ASP.NET by using a compatible library. Se non è disponibile una libreria per il back-end, è anche possibile inviare messaggi di notifica usando direttamente l'API REST.If a library is not available for your back end, you can also send notification messages by using the REST API directly.

Questa esercitazione illustra come testare l'app client inviando semplicemente notifiche che usano .NET SDK per gli hub di notifica in un'applicazione console, anziché in un servizio back-end.This tutorial demonstrates how to test your client app simply by sending notifications that use the .NET SDK for notification hubs in a console application instead of a back-end service. Come passaggio successivo per l'invio di notifiche da un back-end ASP.NET, è consigliabile vedere l'esercitazione relativa all'uso di Hub di notifica per eseguire il push di notifiche agli utenti.We recommend the [Use Notification Hubs to push notifications to users] tutorial as the next step for sending notifications from an ASP.NET back end. È comunque possibile inviare notifiche usando gli approcci seguenti.However, you can send notifications by using the following approaches:

(Facoltativo) Inviare notifiche da un'app console(Optional) Send notifications from a console app

Per inviare notifiche con un'applicazione console .NET, seguire questa procedura:To send notifications by using a .NET console application, do the following:

  1. Fare clic con il pulsante destro del mouse sulla soluzione e scegliere Aggiungi > Nuovo progetto, quindi in Visual C# selezionare Windows e Applicazione console e infine selezionare OK.Right-click the solution, select Add > New Project, under Visual C#, select Windows and Console Application, and then select OK.

    Alla soluzione verrà aggiunta una nuova applicazione console Visual C#.A new Visual C# console application is added to the solution. È anche possibile aggiungere il progetto in una soluzione separata.You can also add the project in a separate solution.

  2. In Visual Studio selezionare Strumenti, Gestione pacchetti NuGet e quindi Console di Gestione pacchetti.In Visual Studio, select Tools, select NuGet Package Manager, and then select Package Manager Console.

    In Visual Studio verrà visualizzata la console di Gestione pacchetti.The Package Manager Console opens in Visual Studio.

  3. Nella finestra Console di Gestione pacchetti impostare Progetto predefinito sul nuovo progetto di applicazione console e quindi eseguire questo comando nella finestra della console:In the Package Manager Console window, set the Default project to your new console application project and then, in the console window, run the following command:

     Install-Package Microsoft.Azure.NotificationHubs
    

    Questa azione aggiunge un riferimento ad Azure Notification Hubs SDK usando il pacchetto NuGet Microsoft.Azure.NotificationHubs.This action adds a reference to the Azure Notification Hubs SDK by using the Microsoft.Azure.Notification Hubs NuGet package.

    Nome in "Progetto predefinito"

  4. Aprire il file Program.cs e quindi aggiungere l'istruzione using seguente:Open the Program.cs file, and then add the following using statement:

     using Microsoft.Azure.NotificationHubs;
    
  5. Nella classe Program aggiungere il metodo seguente:In the Program class, add the following method:

     private static async void SendNotificationAsync()
     {
         NotificationHubClient hub = NotificationHubClient
             .CreateClientFromConnectionString("<connection string with full access>", "<hub name>");
         var toast = @"<toast><visual><binding template=""ToastText01""><text id=""1"">Hello from a .NET App!</text></binding></visual></toast>";
         await hub.SendWindowsNativeNotificationAsync(toast);
     }
    

    Nota

    • Sostituire il segnaposto hub name con il nome dell'hub di notifica visualizzato nel portale di Azure.Replace the hub name placeholder with the name of the notification hub that appears in the Azure portal.
    • Sostituire il segnaposto relativo alla stringa di connessione con la stringa di connessione DefaultFullSharedAccessSignature ottenuta nella pagina Criteri di accesso dell'hub di notifica nella sezione "Configurare l'hub di notifica".Replace the connection string placeholder with the DefaultFullSharedAccessSignature connection string that you obtained from the Access Policies page of your Notification Hub in the "Configure your notification hub" section.
    • Usare la stringa di connessione con accesso completo, non in ascolto.Use the connection string that has full access, not listen access. La stringa con accesso di tipo Attesa non dispone infatti delle autorizzazioni per l'invio di notifiche.The listen-access string does not have permissions to send notifications.
  6. Nel metodo Main aggiungere le righe seguenti:In the Main method, add the following lines:

      SendNotificationAsync();
      Console.ReadLine();
    
  7. Fare clic con il pulsante destro del mouse sul progetto di applicazione console in Visual Studio e quindi scegliere Imposta come progetto di avvio per impostarlo come progetto di avvio.Right-click the console application project in Visual Studio, and then select Set as StartUp Project to set it as the startup project. Premere quindi F5 per eseguire l'applicazione.Then select the F5 key to run the application.

    Tutti i dispositivi registrati riceveranno una notifica di tipo avviso popup.You will receive a toast notification on all registered devices. Selezionando o toccando il banner dell'avviso popup verrà caricata l'app.Selecting or tapping the toast banner loads the app.

Per trovare tutti i payload supportati, è possibile consultare gli argomenti relativi al catalogo degli avvisi popup, al catalogo dei riquadri e alla panoramica delle notifiche su MSDN.You can find all the supported payloads in the [toast catalog], [tile catalog], and [badge overview] topics on MSDN.

Passaggi successiviNext steps

In questo semplice esempio sono state inviate notifiche di trasmissione a tutti i dispositivi Windows usando il portale o un'app console.In this simple example, you sent broadcast notifications to all your Windows devices by using the portal or a console app. Per il passaggio successivo, è consigliabile vedere l'esercitazione relativa all'uso di Hub di notifica per eseguire il push di notifiche agli utenti,For your next step, we recommend the [Use Notification Hubs to push notifications to users] tutorial. che illustra come inviare notifiche da un back-end ASP.NET usando tag per specificare come destinazione utenti specifici.It demonstrates how to send notifications from an ASP.NET back end by using tags to target specific users.

Se si desidera segmentare gli utenti per gruppi di interesse, vedere Utilizzo di Hub di notifica per inviare le ultime notizie.If you want to segment your users by interest groups, see [Use Notification Hubs to send breaking news].

Per altre informazioni generali, vedere le indicazioni su Hub di notifica.For more general information about Notification Hubs, see Notification Hubs guidance.