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.
Passare a Windows Dev Center, accedere con il proprio account Microsoft e quindi selezionare Create a new app (Crea una nuova app).
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.
Espandere Gestione prodotti e quindi selezionare Identità prodotto. Prendere nota dei valori PACKAGE SID, Package/Identity/Name, Package/Identity/Publisher e Package/Properties/PublisherDisplayName .
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.
In Informazioni di base selezionare Credenziali client: Aggiungere un certificato o un segreto.
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.
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
Accedere al portale di Azure.
Scegliere Tutti i servizi dal menu a sinistra.
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.
Nella pagina Hub di notifica selezionare Crea sulla barra degli strumenti.
Nella scheda Informazioni di base della pagina Hub di notifica seguire questa procedura:
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.
Immettere un nome univoco per il nuovo spazio dei nomi in Dettagli spazio dei nomi.
Uno spazio dei nomi contiene uno o più hub di notifica, quindi digitare un nome per l'hub in Dettagli hub di notifica.
Selezionare un valore nell'elenco a discesa Posizione. Questo valore specifica la posizione in cui creare l'hub.
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.
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.
Seleziona Crea.
Al termine della distribuzione, selezionare Vai alla risorsa.
Configurare le impostazioni WNS per l'hub
Selezionare Windows (WNS) nella categoria NOTIFICATION SETTINGS (IMPOSTAZIONI DI NOTIFICA).
Immettere i valori per PACKAGE SID (ad esempio" "ms-app://
<Your Package SID>
") e Security Key (il segreto dell'applicazione) annotati nella sezione precedente.Fare clic su Save sulla barra degli strumenti.
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
In Visual Studio scegliere Nuovo dal menu File, quindi fare clic su Progetto.
Nella finestra di dialogo Crea un nuovo progetto completare questa procedura:
Nella casella di ricerca in alto digitare Windows Universal.
Nei risultati della ricerca selezionare Blank App (Universal Windows) (App vuota (Windows universale)) e quindi selezionare Avanti.
Nella finestra di dialogo Configura il nuovo progetto immettere un Nome progetto e un Percorso per i file di progetto.
Seleziona Crea.
Accettare le impostazioni predefinite per le versioni di destinazione e minima della piattaforma e selezionare OK.
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 .
Nella procedura guidata accedere con il proprio account Microsoft.
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.
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.
Nella casella di ricerca immettere WindowsAzure.Messaging.Managed, selezionare Installa e accettare le condizioni per l'utilizzo.
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.
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;
Nel file di progetto
App.xaml.cs
individuare la classeApp
e aggiungere la definizione del metodoInitNotificationsAsync
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 connessioneDefaultListenSharedAccessSignature
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 connessioneDefaultListenSharedAccessSignature
ottenuta nella pagina Criteri di accesso dell'hub di notifica in una sezione precedente.Nella parte superiore del gestore dell'evento
OnLaunched
inApp.xaml.cs
aggiungere la chiamata seguente al nuovo metodoInitNotificationsAsync
:InitNotificationsAsync();
Questa azione garantisce la registrazione dell'URI di canale nell'hub di notifica a ogni avvio dell'applicazione.
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.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.
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.
Nel portale di Azure passare alla scheda Overview (Informazioni generali) e selezionare Test Send (Invio di prova) sulla barra degli strumenti.
Nella finestra Test Send (Invio di prova) eseguire le operazioni seguenti:
Per Platforms (Piattaforme) selezionare Windows.
Per Notification Type (Tipo di notifica) selezionare Toast (Avviso popup).
Selezionare Invia.
Visualizzare il risultato dell'operazione di invio nell'elenco dei risultati nella parte inferiore della finestra. È inoltre possibile visualizzare un messaggio di avviso.
Viene visualizzato il messaggio di notifica: Test message (Messaggio di prova) sul desktop.
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: