Introduzione ad Hub di notifica per le app della piattaforma UWP (Universal Windows Platform)

Panoramica

Questa esercitazione illustra come usare Hub di notifica di Azure per inviare notifiche push a un'app della piattaforma UWP (Universal Windows Platform).

In questa esercitazione si creerà 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 le notifiche push a tutti i dispositivi che eseguono l'app.

Prima di iniziare

Obiettivo di questo argomento è consentire di iniziare a usare Hub di notifica il prima possibile. Questo argomento presenta un esempio di 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 pannello di navigazione a sinistra o vedere i collegamenti pertinenti in Passaggi successivi.

I commenti e suggerimenti inviati seriamente verranno presi in considerazione. Se si riscontrano difficoltà nel completare questo argomento o si hanno suggerimenti per migliorarne il contenuto, è possibile lasciare un commento nella parte inferiore della pagina.

Il codice completo per questa esercitazione è disponibile su GitHub qui.

Prerequisiti

Per completare questa esercitazione, è necessario disporre di:

Il completamento di questa esercitazione costituisce un prerequisito per tutte le altre esercitazioni di Hub di notifica relative ad app della piattaforma UWP (Universal Windows Platform).

Registrare l'app di Windows Store

Per inviare notifiche push ad app UWP è necessario associare l'app a Windows Store e quindi configurare l'hub di notifica per l'integrazione con Servizi notifica Push Windows.

  1. Se l'app non è ancora stata registrata, passare a Windows Dev Center, accedere con il proprio account Microsoft e quindi fare clic su Crea una nuova app.

  2. Digitare un nome per l'app e fare clic su Riserva nome dell'app. Verrà 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 universale di Windows e quindi fare clic su 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, quindi fare clic su 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. Fare clic sull'app registrata nel passaggio 2, fare clic su Avanti e quindi su Associa. Le informazioni di registrazione a Windows Store necessarie verranno aggiunte al manifesto dell'applicazione.

  8. Nella pagina Windows Dev Center della nuova app fare clic su Servizi, quindi su Notifiche push e infine su WNS/MPNS.

  9. Fare clic su Nuova notifica.

  10. Fare clic sul modello Blank (Toast) (Vuoto - Avviso popup) e quindi fare clic su OK.

  11. Immettere un nome per la notifica e un messaggio contesto visivo. Fare clic su Salva come bozza.

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

  13. Fare clic sul nome dell'applicazione. Prendere nota della password di Segreto applicazione e dell'ID di sicurezza (SID) del pacchetto presente nelle impostazioni della piattaforma Windows Store.

    [AZURE.WARNING] 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 Azuree quindi fare clic su +NUOVO nella parte superiore sinistra della schermata.
  2. Fare clic su Nuovo, quindi su Web e dispositivi mobili. Scorrere verso il basso se necessario, quindi fare clic su Hub di notifica.

    Portale di Azure: creare hub di notifica

  3. Assicurarsi di specificare un nome univoco nel campo Hub di notifica . Selezionare l'area, la sottoscrizione e il gruppo di risorse desiderati (se già disponibili).

    Se è già disponibile uno spazio dei nomi del bus di servizio in cui creare l'hub, selezionarlo usando l'opzione Seleziona esistente nel campo Spazio dei nomi. In caso contrario, usare il nome predefinito che verrà creato in base al nome dell'hub, se tale nome è disponibile.

    Al termine, fare clic su Crea.

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

  4. Dopo aver creato l'hub di notifica e lo spazio dei nomi, sarà possibile accedere alle rispettive pagine del portale.

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

  5. Fare clic su Impostazioni e quindi su Criteri di accesso. Prendere nota delle due stringhe di connessione che saranno disponibili, perché saranno necessarie per la gestione delle notifiche push in un secondo momento.

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

  1. Selezionare l'opzione Servizi di notifica e l'opzione Windows (WNS). Immettere quindi la password di Segreti applicazione nel campo Chiave di sicurezza. Immettere il valore di SID pacchetto ottenuto da WNS nella sezione precedente e quindi fare clic su Salva.

  

L'hub di notifica è ora configurato per l'uso con Servizi notifica Push Windows e si dispone delle stringhe di connessione per registrare l'app e inviare le 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 di dialogo Gestisci pacchetti NuGet .

  2. Cercare WindowsAzure.Messaging.Managed , quindi fare clic su Installae accettare le condizioni per l'utilizzo.

    Verrà scaricato, installato e aggiunto un riferimento alla libreria di Messaggistica di Azure per Windows tramite il pacchetto WindowsAzure.Messaging.Managed NuGet.

  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 inoltre 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 "your 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();
    

    In questo modo si garantisce che il valore di ChannelURI venga registrato nell'hub di notifica a ogni avvio dell'applicazione.

  6. Premere F5 per eseguire l'app. Verrà visualizzata una finestra di dialogo popup contenente la chiave di registrazione.

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

Inviare notifiche

È possibile testare rapidamente la ricezione delle notifiche nell'app inviando le notifiche nel portale di Azure con il pulsante Invio di prova dell'hub di notifica, come illustrato nella schermata seguente.

Le notifiche push vengono in genere inviate in un servizio back-end come Servizi mobili o ASP.NET usando una libreria compatibile. È anche possibile utilizzare l'API REST direttamente per inviare messaggi di notifica se una libreria non è disponibile per il back-end.

In questa esercitazione verrà usata un'app semplice e verrà illustrato solo il test dell'app client mediante l'invio di notifiche tramite .NET SDK per gli hub di notifica in un'applicazione console, invece che in un servizio back-end. Come passaggio successivo per l'invio di notifiche da un back-end ASP.NET, è consigliabile vedere l'esercitazione Uso di Hub di notifica di Azure per inviare notifiche agli utenti . Si possono tuttavia usare gli approcci seguenti per l'invio di notifiche:

(Facoltativo) Inviare notifiche da un'app console

Per inviare notifiche tramite un'applicazione console .NET seguire questa procedura.

  1. Fare clic con il pulsante destro del mouse sulla soluzione, scegliere Aggiungi e Nuovo progetto, quindi in Visual C# fare clic su Windows, su Applicazione console e infine su OK.

    Una nuova applicazione console Visual C# viene aggiunta alla soluzione. Questa operazione può essere eseguita anche in una soluzione separata.

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

    In questo modo viene visualizzata la console di Gestione pacchetti in Visual Studio.

  3. Nella finestra Console di Gestione pacchetti impostare Progetto predefinito sul nuovo progetto di applicazione console, quindi eseguire il comando seguente nella finestra della console:

     Install-Package Microsoft.Azure.NotificationHubs
    

    Verrà aggiunto un riferimento all’SDK dell’Hub di notifica di Azure mediante il pacchetto NuGet Microsoft.Azure.NotificationHubs.

  4. Aprire il file Program.cs e 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);
     }
    
    Make sure to replace the "hub name" placeholder with the name of the notification hub that as it appears in the Azure Portal. Also, replace the connection string placeholder with the **DefaultFullSharedAccessSignature** connection string that you obtained from the **Access Policies** page of your Notification Hub in the section called "Configure your notification hub."
    
    Nota

    Assicurarsi di usare la stringa di connessione con accesso Completo, non Attesa. La stringa con accesso di tipo Attesa non dispone infatti delle autorizzazioni per l'invio di notifiche.

  6. Aggiungere le righe seguenti nel metodo Main :

      SendNotificationAsync();
      Console.ReadLine();
    
  7. Fare clic con il pulsante destro del mouse sul progetto di applicazione console in Visual Studio e fare clic su 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. Facendo clic o toccando il banner dell'avviso popup l'app viene caricata.

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 le notifiche di trasmissione sono state inviate a tutti i dispositivi Windows tramite il portale o un'app console. Come passaggio successivo, è consigliabile vedere l'esercitazione Uso di Hub di notifica di Azure per inviare notifiche agli utenti . Verrà illustrato come inviare notifiche da un back-end ASP.NET destinate a 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 sull'uso di Hub di notifica, vedere Panoramica dell'Hub di notifica.