Esercitazione: Inviare notifiche alle app piattaforma UWP (Universal Windows Platform) con Hub di notifica di Azure

Questa esercitazione illustra come creare un hub di notifica per inviare notifiche push a un'app della piattaforma UWP (Universal Windows Platform). Si crea un'app di Windows Store vuota che riceve notifiche push tramite Windows Push Notification Service (WNS). Sarà quindi possibile usare l'hub di notifica per trasmettere notifiche push a tutti i dispositivi che eseguono l'app.

Nota

Il codice completo per questa esercitazione è disponibile in GitHub.

Seguire questa procedura:

  • Creare un'app in Windows Store
  • Creare un hub di notifica
  • Creare un'app Windows di esempio
  • Inviare notifiche di prova

Prerequisiti

  • Sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
  • Microsoft Visual Studio 2017 o versioni successive. Nell'esempio di questa esercitazione viene usato Visual Studio 2019.
  • Strumenti per lo sviluppo di app UWP installati
  • Account di Windows Store attivo
  • Verificare che l'impostazione Ottieni notifiche delle app e da altri mittenti sia abilitata.
    • Aprire la finestra Impostazioni sul computer.
    • Selezionare il riquadro Sistema.
    • Selezionare Notifiche e azioni dal menu a sinistra.
    • Verificare che l'impostazione Ottieni notifiche delle app e da altri mittenti sia abilitata. Se non lo è, abilitarla.

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

Creare un'app in Windows Store

Nota

Microsoft Push Notification Service (MPNS) è deprecato e non è più supportato.

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. Passare a Windows Dev Center, accedere con il proprio account Microsoft e quindi selezionare Create a new app (Crea una nuova app).

    New app button

  2. Digitare un nome per l'app e quindi selezionare Reserve product name (Riserva nome del prodotto). Verrà così creata una nuova registrazione a Windows Store per l'app.

    Store app name

  3. Espandere Gestione prodotti e quindi selezionare Identità prodotto. Prendere nota dei valori PACKAGE SID, Package/Identity/Name, Package/Identity/Publisher e Package/Properties/PublisherDisplayName .

    Partner center apps

  4. In Gestione prodotti selezionare WNS/MPNS e quindi selezionare Portale di registrazione app. Effettuare l'accesso all'account Microsoft. La pagina di registrazione dell'applicazione viene aperta in una nuova scheda.

    WNS page

  5. In Informazioni di base selezionare Credenziali client: Aggiungere un certificato o un segreto.

    Notification Hub settings on Azure portal

  6. Nella pagina Certificati e segreti , in Segreti client selezionare Nuovo segreto client. Dopo aver creato un segreto client (detto anche segreto dell'applicazione), prendere nota di esso prima di lasciare la pagina.

    Avviso

    È possibile visualizzare solo i valori del segreto client (segreto dell'applicazione) immediatamente dopo averli creati. Assicurarsi di salvare il segreto prima di uscire dalla pagina.

    Client secret on portal

    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.

Creare un hub di notifica

  1. Accedere al portale di Azure.

  2. Scegliere Tutti i servizi dal menu a sinistra. A screenshot showing select All Services for an existing namespace.

  3. Digitare Hub di notifica nella casella di testo Filtra servizi. Selezionare l'icona a forma di stella accanto al nome del servizio per aggiungere il servizio alla sezione PREFERITI nel menu a sinistra. Selezionare Hub di notifica.

    A screenshot showing how to filter for notification hubs.

  4. Nella pagina Hub di notifica selezionare Crea sulla barra degli strumenti.

    A screenshot showing how to create a new notification hub.

  5. Nella scheda Informazioni di base della pagina Hub di notifica seguire questa procedura:

    1. In Sottoscrizione selezionare il nome della sottoscrizione di Azure che si vuole usare e quindi selezionare un gruppo di risorse esistente o crearne uno nuovo.

    2. Immettere un nome univoco per il nuovo spazio dei nomi in Dettagli spazio dei nomi.

    3. Uno spazio dei nomi contiene uno o più hub di notifica, quindi digitare un nome per l'hub in Dettagli hub di notifica.

    4. Selezionare un valore nell'elenco a discesa Posizione. Questo valore specifica la posizione in cui creare l'hub.

      Screenshot showing notification hub details.

    5. Esaminare l'opzione zone di disponibilità. Se si sceglie un'area con zone di disponibilità, la casella di controllo è selezionata per impostazione predefinita. zone di disponibilità è una funzionalità a pagamento, quindi viene aggiunta una tariffa aggiuntiva al livello.

    6. Scegliere un'opzione di ripristino di emergenza: Nessuna, Area di ripristino abbinata o Area di ripristino flessibile. Se si sceglie Area di ripristino abbinata, viene visualizzata l'area di failover. Se si seleziona Area di ripristino flessibile, usare l'elenco a discesa per scegliere tra un elenco di aree di ripristino.

      Screenshot showing availability zone details.

    7. Seleziona Crea.

  6. Al termine della distribuzione, selezionare Vai alla risorsa.

Configurare le impostazioni WNS per l'hub

  1. Selezionare Windows (WNS) nella categoria NOTIFICATION SETTINGS (IMPOSTAZIONI DI NOTIFICA).

  2. Immettere i valori per PACKAGE SID (ad esempio" "ms-app://<Your Package SID>") e Security Key (il segreto dell'applicazione) annotati nella sezione precedente.

  3. Fare clic su Save sulla barra degli strumenti.

    The Package SID and Security Key boxes

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.

Creare un'app Windows di esempio

  1. In Visual Studio scegliere Nuovo dal menu File, quindi fare clic su Progetto.

  2. Nella finestra di dialogo Crea un nuovo progetto completare questa procedura:

    1. Nella casella di ricerca in alto digitare Windows Universal.

    2. Nei risultati della ricerca selezionare Blank App (Universal Windows) (App vuota (Windows universale)) e quindi selezionare Avanti.

      New Project dialog

    3. Nella finestra di dialogo Configura il nuovo progetto immettere un Nome progetto e un Percorso per i file di progetto.

    4. Seleziona Crea.

  3. Accettare le impostazioni predefinite per le versioni di destinazione e minima della piattaforma e selezionare OK.

  4. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto di app di Windows Store, scegliere Pubblica e quindi selezionare Associa applicazione a Store. Viene visualizzata la procedura guidata Associa l'applicazione con Windows Store .

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

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

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

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

    The Manage NuGet Packages window

    Questa azione scarica, installa e aggiunge un riferimento alla libreria di Hub di notifica di Azure per Windows usando il pacchetto NuGet Microsoft.Azure.NotificationHubs.

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

    using Windows.Networking.PushNotifications;
    using Microsoft.WindowsAzure.Messaging;
    using Windows.UI.Popups;
    
  10. Nel file di progetto App.xaml.cs individuare la classe App e aggiungere la definizione del metodo InitNotificationsAsync seguente. Sostituire <your hub name> con il nome dell'hub di notifica creato nel portale di Azure e sostituire <Your DefaultListenSharedAccessSignature connection string> con la stringa di connessione DefaultListenSharedAccessSignature presente nella pagina Criteri di accesso dell'hub di notifica:

    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 della stringa di connessione con la stringa di connessione DefaultListenSharedAccessSignature ottenuta nella pagina Criteri di accesso dell'hub di notifica in una sezione precedente.

  11. Nella parte superiore 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.

  12. Fare clic con il pulsante destro del mouse Package.appxmanifest e selezionare Visualizza codice (F7). Individuare <Identity .../> e sostituire il valore Name con Package /Identity/Name e sostituire il valore di Publisher con il valore Package/Identity/Publisher dell'app creata in precedenza.

  13. Per eseguire l'app, premere F5. Verrà visualizzata una finestra di dialogo contenente la chiave di registrazione. Per chiudere la finestra di dialogo, fare clic su OK.

    Registration successful

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

Inviare notifiche di prova

È possibile testare rapidamente la ricezione di notifiche nell'app inviando notifiche nel portale di Azure.

  1. Nel portale di Azure passare alla scheda Overview (Informazioni generali) e selezionare Test Send (Invio di prova) sulla barra degli strumenti.

    Test Send button

  2. Nella finestra Test Send (Invio di prova) eseguire le operazioni seguenti:

    1. Per Platforms (Piattaforme) selezionare Windows.

    2. Per Notification Type (Tipo di notifica) selezionare Toast (Avviso popup).

    3. Selezionare Invia.

      The Test Send pane

  3. Visualizzare il risultato dell'operazione di invio nell'elenco dei risultati nella parte inferiore della finestra. È inoltre possibile visualizzare un messaggio di avviso.

    Result of Send operation

  4. Viene visualizzato il messaggio di notifica: Test message (Messaggio di prova) sul desktop.

    Notification message

Passaggi successivi

Sono state inviate notifiche di trasmissione a tutti i dispositivi Windows usando il portale o un'app console. Per informazioni sulle procedure per eseguire il push di notifiche a dispositivi specifici, passare all'esercitazione seguente: