Introduzione a Hub di notifica per le app UWP

Panoramica

Questo articolo illustra come usare Hub di notifica di Azure per inviare notifiche push a un'app UWP (Universal Windows Platform).

In questo articolo si crea un'app di Windows Store vuota che riceve notifiche push tramite Servizi notifica Push Windows (WNS). Al termine, sarà possibile usare l'hub di notifica per trasmettere notifiche push a tutti i dispositivi che eseguono l'app.

Prima di iniziare

Obiettivo di questo articolo è consentire di iniziare a usare Hub di notifica di Azure il prima possibile. L'articolo presenta uno scenario di trasmissione molto semplice che illustra i concetti di base di Hub di notifica.

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

I commenti e suggerimenti inviati verranno presi seriamente in considerazione. Se si riscontrano difficoltà nel completare questo argomento o si hanno suggerimenti per migliorarne il contenuto, è possibile lasciare un commento alla fine dell'articolo.

Il codice completo per questa esercitazione è disponibile in GitHub.

Prerequisiti

Per completare questa esercitazione, è necessario disporre di:

Il completamento di questa esercitazione è un prerequisito per tutte le altre esercitazioni relative a Hub di notifica per le app UWP.

Registrare l'app di Windows Store

Per inviare notifiche push ad app UWP, associare l'app a Windows Store. Configurare quindi l'hub di notifica per l'integrazione con 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.

  2. Digitare un nome per l'app e quindi selezionare Riserva nome dell'app. Verrà così creata una nuova registrazione a Windows Store per l'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.

  4. Accettare le impostazioni predefinite per le versioni minima e di destinazione della piattaforma.

  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.
    Viene visualizzata la procedura guidata Associa l'applicazione con Windows Store .

  6. Nella procedura guidata accedere con il proprio account Microsoft.

  7. Selezionare l'app registrata nel passaggio 2, quindi Avanti e infine Associa. Le informazioni di registrazione a Windows Store necessarie verranno così aggiunte al manifesto dell'applicazione.

  8. Nella pagina di Windows Dev Center per la nuova app selezionare Servizi, quindi Notifiche push e infine WNS/MPNS.

  9. Selezionare Nuova notifica.

  10. Selezionare il modello Blank (Toast) (Vuoto - Avviso popup) e quindi OK.

  11. Immettere un nome per la notifica e un messaggio di contesto visivo e quindi selezionare Salva come bozza.

  12. Passare al portale di registrazione delle applicazioni ed eseguire l'accesso.

  13. Selezionare il nome dell'applicazione. Nelle impostazioni della piattaforma Windows Store prendere nota della password di Segreto dell'applicazione e dell'ID di sicurezza (SID) del pacchetto.

    Avviso

    Il segreto applicazione e il SID di pacchetto sono importanti credenziali di sicurezza. Non condividere questi valori con altri utenti né distribuirli con l'app.

Configurare l'hub di notifica

  1. Accedere al portale di Azure.

  2. Selezionare Nuovo > Web e dispositivi mobili > Hub di notifica.

    Portale di Azure: creare un hub di notifica

  3. Nella casella Hub di notifica digitare un nome univoco. Selezionare l'area, la sottoscrizione e il gruppo di risorse (se già disponibili).

    Se si ha già un spazio dei nomi del bus di servizio in cui si vuole creare l'hub, seguire questa procedura:

    a. Nell'area Spazio dei nomi selezionare il collegamento Seleziona esistente.

    b. Selezionare Crea.

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

    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.

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

  4. Selezionare Impostazioni > Criteri di accesso. Prendere nota delle due stringhe di connessione disponibili. Saranno necessarie in un secondo momento per gestire le notifiche push.

    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. Nella casella SID pacchetto immettere il valore ottenuto da WNS nella sezione precedente e quindi selezionare Salva.

Caselle SID pacchetto e Chiave di sicurezza

L'hub di notifica è ora configurato per l'uso di WNS. Sono disponibili le stringhe di connessione per la registrazione dell'app e l'invio di notifiche.

Connettere l'app all'hub di notifica

  1. In Visual Studio fare clic con il pulsante destro del mouse sulla soluzione e quindi scegliere Gestisci pacchetti NuGet.
    Verrà visualizzata la finestra Gestisci pacchetti NuGet.

  2. Nella casella di ricerca immettere WindowsAzure.Messaging.Managed, selezionare Installa e accettare le condizioni per l'utilizzo.

    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.

  3. Aprire il file di progetto App.xaml.cs e aggiungere le istruzioni using seguenti:

     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:

     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.

    Nota

    • Sostituire il segnaposto hub name con il nome dell'hub di notifica visualizzato nel portale di Azure.
    • 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.
  5. All'inizio del gestore dell'evento OnLaunched in App.xaml.cs, aggiungere la chiamata seguente al nuovo metodo InitNotificationsAsync:

     InitNotificationsAsync();
    

    Questa azione garantisce la registrazione dell'URI di canale nell'hub di notifica a ogni avvio dell'applicazione.

  6. Per eseguire l'app, premere F5. Verrà visualizzata una finestra di dialogo contenente la chiave di registrazione.

L'app è ora pronta per ricevere notifiche di tipo avviso popup.

Inviare notifiche

È possibile testare rapidamente la ricezione di notifiche nell'app inviando notifiche nel portale di Azure. Usare il pulsante Invio di prova nell'hub di notifica, come illustrato nell'immagine seguente:

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. Se non è disponibile una libreria per il back-end, è anche possibile inviare messaggi di notifica usando direttamente l'API REST.

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. 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. È comunque possibile inviare notifiche usando gli approcci seguenti.

(Facoltativo) Inviare notifiche da un'app console

Per inviare notifiche con un'applicazione console .NET, seguire questa procedura:

  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.

    Alla soluzione verrà aggiunta una nuova applicazione console Visual C#. È anche possibile aggiungere il progetto in una soluzione separata.

  2. In Visual Studio selezionare Strumenti, Gestione pacchetti NuGet e quindi Console di Gestione pacchetti.

    In Visual Studio verrà visualizzata la console di Gestione pacchetti.

  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:

     Install-Package Microsoft.Azure.NotificationHubs
    

    Questa azione aggiunge un riferimento ad Azure Notification Hubs SDK usando il pacchetto NuGet Microsoft.Azure.NotificationHubs.

    Nome in "Progetto predefinito"

  4. Aprire il file Program.cs e quindi aggiungere l'istruzione using seguente:

     using Microsoft.Azure.NotificationHubs;
    
  5. Nella classe Program aggiungere il metodo seguente:

     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.
    • 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".
    • Usare la stringa di connessione con accesso completo, non in ascolto. La stringa con accesso di tipo Attesa non dispone infatti delle autorizzazioni per l'invio di notifiche.
  6. Nel metodo Main aggiungere le righe seguenti:

      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. Premere quindi F5 per eseguire l'applicazione.

    Tutti i dispositivi registrati riceveranno una notifica di tipo avviso popup. Selezionando o toccando il banner dell'avviso popup verrà caricata l'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.

Passaggi successivi

In questo semplice esempio sono state inviate notifiche di trasmissione a tutti i dispositivi Windows usando il portale o un'app console. Per il passaggio successivo, è consigliabile vedere l'esercitazione relativa all'uso di Hub di notifica per eseguire il push di notifiche agli utenti, che illustra come inviare notifiche da un back-end ASP.NET usando tag per specificare come destinazione utenti specifici.

Se si desidera segmentare gli utenti per gruppi di interesse, vedere Utilizzo di Hub di notifica per inviare le ultime notizie.

Per altre informazioni generali, vedere le indicazioni su Hub di notifica.