Tutorial: Senden von Benachrichtigungen an Apps für die universelle Windows-Plattform mit Azure Notification Hubs

In diesem Tutorial erstellen Sie einen Notification Hub, um Pushbenachrichtigungen an eine App für die universelle Windows-Plattform (UWP) zu senden. Sie erstellen eine leere Windows Store-App, die Pushbenachrichtigungen unter Verwendung des Windows-Pushbenachrichtigungsdiensts (WNS) empfängt. Dann senden Sie über Ihren Notification Hub Pushbenachrichtigungen an alle Geräte, die Ihre App ausführen.

Hinweis

Den vollständigen Code für dieses Tutorial finden Sie auf GitHub.

Führen Sie die folgenden Schritte aus:

  • Erstellen einer App im Windows Store
  • Erstellen eines Notification Hubs
  • Erstellen einer Beispiel-Windows-App
  • Senden von Testbenachrichtigungen

Voraussetzungen

  • Azure-Abonnement. Falls Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Azure-Konto erstellen, bevor Sie beginnen.
  • Microsoft Visual Studio 2017 oder höher. Für das Beispiel in diesem Tutorial wird Visual Studio 2019 verwendet.
  • Installierte Entwicklungstools für UWP-Apps
  • Ein aktives Windows Store-Konto
  • Vergewissern Sie sich, dass die Einstellung Benachrichtigungen von Apps und anderen Absendern abrufen aktiviert ist.
    • Starten Sie das Fenster Einstellungen auf Ihrem Computer.
    • Wählen Sie die Kachel System aus.
    • Wählen Sie links im Menü Benachrichtigungen und Aktionen aus.
    • Vergewissern Sie sich, dass die Einstellung Benachrichtigungen von Apps und anderen Absendern abrufen aktiviert ist. Ist sie nicht aktiviert, aktivieren Sie sie.

Dieses Tutorial muss für alle anderen Notification Hubs-Tutorials für UWP-Apps abgeschlossen werden.

Erstellen einer App im Windows Store

Hinweis

Der Microsoft-Pushbenachrichtigungsdienst (Microsoft Push Notification Service, MPNS) ist veraltet und wird nicht mehr unterstützt.

Ordnen Sie Ihre App dem Windows Store zu, um Pushbenachrichtigungen an UWP-Apps senden zu können. Konfigurieren Sie anschließend Ihren Notification Hub für die Integration in WNS.

  1. Navigieren Sie zum Windows Dev Center, melden Sie sich dort mit Ihrem Microsoft-Konto an, und wählen Sie dann Neue App erstellen aus.

    New app button

  2. Geben Sie einen Namen für Ihre App ein, und wählen Sie anschließend Produktname reservieren aus. Dadurch wird eine neue Windows Store-Registrierung für Ihre App erstellt.

    Store app name

  3. Erweitern Sie Produktverwaltung, und wählen Sie dann Produktidentität aus. Notieren Sie sich die Werte für Paket-SID, Paket/Identität/Name, Paket/Identität/Herausgeber und Paket/Eigenschaften/PublisherDisplayName.

    Partner center apps

  4. Wählen Sie unter Produktverwaltung die Option WNS/MPNS und dann App-Registrierungsportal aus. Anmelden bei Ihrem Azure-Konto Die App-Registrierungsseite wird auf einer neuen Registerkarte geöffnet.

    WNS page

  5. Wählen Sie unter Essentials die Option Clientanmeldeinformationen: Zertifikat oder Geheimnis hinzufügen aus.

    Notification Hub settings on Azure portal

  6. Wählen Sie auf der Seite Zertifikate und Geheimnisse unter Geheime Clientschlüssel die Option Neuer geheimer Clientschlüssel aus. Nachdem Sie einen geheimen Clientschlüssel (auch als Anwendungsgeheimnis bezeichnet) erstellt haben, notieren Sie ihn sich, bevor Sie die Seite verlassen.

    Warnung

    Sie können Werte für den geheimen Clientschlüssel (Anwendungsgeheimnis) nur unmittelbar nach seiner Erstellung anzeigen. Speichern Sie das Geheimnis unbedingt, bevor Sie die Seite verlassen.

    Client secret on portal

    Warnung

    Der geheime Schlüssel der Anwendung und die Paket-SID sind wichtige Sicherheitsanmeldeinformationen. Geben Sie diese Werte nicht weiter, und verteilen Sie sie nicht mit Ihrer Anwendung.

Erstellen eines Notification Hubs

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie im Menü links Alle Dienste aus. A screenshot showing select All Services for an existing namespace.

  3. Geben Sie Notification Hubs in das Textfeld Dienste filtern ein. Wählen Sie das Sternsymbol neben dem Dienstnamen aus, um den Dienst im linken Menü zum Abschnitt FAVORITEN hinzuzufügen. Wählen Sie Notification Hubs aus.

    A screenshot showing how to filter for notification hubs.

  4. Wählen Sie auf der Seite Notification Hubs in der Symbolleiste die Option Erstellen aus.

    A screenshot showing how to create a new notification hub.

  5. Führen Sie auf der Registerkarte Grundlagen der Seite Notification Hub die folgenden Schritte aus:

    1. Wählen Sie unter Abonnement den Namen des Azure-Abonnements aus, das Sie verwenden möchten, und wählen Sie dann eine vorhandene Ressourcengruppe aus, oder erstellen Sie eine neue Ressourcengruppe.

    2. Geben Sie unter Namespacedetails einen eindeutigen Namen für den neuen Namespace ein.

    3. Ein Namespace enthält mindestens einen Notification Hub. Geben Sie daher unter Notification Hub-Details einen Namen für den Hub ein.

    4. Wählen Sie im Dropdown-Listenfeld Standort einen Wert aus. Dieser Wert gibt den Standort an, an dem der Hub erstellt werden soll.

      Screenshot showing notification hub details.

    5. Überprüfen Sie die Option Verfügbarkeitszonen. Wenn Sie eine Region mit Verfügbarkeitszonen ausgewählt haben, ist das Kontrollkästchen standardmäßig aktiviert. Verfügbarkeitszonen sind ein kostenpflichtiges Feature, für das in Ihrem Tarif zusätzliche Gebühren anfallen.

    6. Wählen Sie Ihre Option für die Notfallwiederherstellung aus: Keine, Gekoppelte Wiederherstellungsregion oder Flexible Wiederherstellungsregion. Wenn Sie Gekoppelte Wiederherstellungsregion auswählen, wird die Failoverregion angezeigt. Wenn Sie Flexible Wiederherstellungsregion auswählen, verwenden Sie die Dropdownliste, um aus einer Liste mit Wiederherstellungsregionen auszuwählen.

      Screenshot showing availability zone details.

    7. Klicken Sie auf Erstellen.

  6. Wählen Sie nach Abschluss der Bereitstellung die Option Zu Ressourcengruppe wechseln.

Konfigurieren der WNS-Einstellungen für den Hub

  1. Wählen Sie in der Kategorie BENACHRICHTIGUNGSEINSTELLUNGEN die Option Windows (WNS) aus.

  2. Geben Sie die Werte für Paket-SID (z. B. „ms-app://<Your Package SID>“) und Sicherheitsschlüssel (das Anwendungsgeheimnis) ein, die Sie im vorherigen Abschnitt notiert haben.

  3. Klicken Sie in der Symbolleiste auf Speichern .

    The Package SID and Security Key boxes

Ihr Notification Hub ist jetzt für die Zusammenarbeit mit WNS konfiguriert. Sie verfügen über die Verbindungszeichenfolgen, die Sie zum Registrieren Ihrer App und zum Senden von Benachrichtigungen benötigen.

Erstellen einer Beispiel-Windows-App

  1. Öffnen Sie in Visual Studio das Menü Datei, und wählen Sie die Optionen Neu und Projekt.

  2. Führen Sie im Dialogfenster Neues Projekt erstellen die folgenden Schritte aus:

    1. Geben Sie oben im Suchfeld den Suchbegriff Windows Universal ein.

    2. Wählen Sie in den Suchergebnissen Leere App (Universelles Windows) und dann Weiter aus.

      New Project dialog

    3. Geben Sie im Dialogfeld Neues Projekt konfigurieren einen Projektnamen und einen Speicherort für die Projektdateien ein.

    4. Klicken Sie auf Erstellen.

  3. Übernehmen Sie die Standardwerte für die Zielversion und die Mindestversion der Plattform, und wählen Sie OK aus.

  4. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Windows Store-App-Projekt, und wählen Sie Veröffentlichen und anschließend App mit Store verknüpfen aus. Daraufhin wird der Assistent App mit Windows Store verknüpfen angezeigt.

  5. Melden Sie sich im Assistenten mit Ihrem Microsoft-Konto an.

  6. Wählen Sie die App aus, die Sie in Schritt 2 registriert haben. Wählen Sie dann Weiter und anschließend Zuordnen aus. Dadurch werden die erforderlichen Windows Store-Registrierungsinformationen zum Anwendungsmanifest hinzugefügt.

  7. Klicken Sie in Visual Studio mit der rechten Maustaste auf die Projektmappe, und wählen Sie NuGet-Pakete verwalten aus. Das Fenster NuGet-Pakete verwalten wird geöffnet.

  8. Geben Sie in das Suchfeld die Zeichenfolge WindowsAzure.Messaging.Managed ein, wählen Sie Installieren aus, und akzeptieren Sie die Nutzungsbedingungen.

    The Manage NuGet Packages window

    Mit dieser Aktion wird unter Verwendung des Microsoft.Azure.NotificationHubs-NuGet-Pakets die Azure Notification Hubs-Bibliothek für Windows heruntergeladen, installiert und ein Verweis hinzugefügt.

  9. Öffnen Sie die Projektdatei App.xaml.cs, und fügen Sie die folgenden Anweisungen hinzu:

    using Windows.Networking.PushNotifications;
    using Microsoft.WindowsAzure.Messaging;
    using Windows.UI.Popups;
    
  10. Suchen Sie in der Datei App.xaml.cs des Projekts die Klasse App, und fügen Sie die folgende InitNotificationsAsync-Methodendefinition hinzu. Ersetzen Sie <your hub name> durch den Namen des Benachrichtigungs-Hubs, den Sie im Azure-Portal erstellt haben, und ersetzen Sie <Your DefaultListenSharedAccessSignature connection string> durch die Verbindungszeichenfolge DefaultListenSharedAccessSignature von der Seite Zugriffsrichtlinien Ihres Benachrichtigungs-Hubs:

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

    Dieser Code ruft den Kanal-URI für die App von WNS ab und registriert dann diesen Kanal-URI bei Ihrem Benachrichtigungshub.

    Hinweis

    Ersetzen Sie den Platzhalter hub name durch den Namen des Notification Hubs aus dem Azure-Portal. Ersetzen Sie außerdem den Verbindungszeichenfolgen-Platzhalter durch die Verbindungszeichenfolge DefaultListenSharedAccessSignature, die Sie in einem der vorherigen Abschnitte über die Seite Zugriffsrichtlinien Ihres Notification Hubs ermittelt haben.

  11. Fügen Sie in der Datei App.xaml.cs oben im Ereignishandler OnLaunched den folgenden Aufruf zur neuen InitNotificationsAsync-Methode hinzu:

    InitNotificationsAsync();
    

    Dadurch wird gewährleistet, dass der Kanal-URI bei jedem Start der Anwendung beim Notification Hub registriert wird.

  12. Klicken Sie mit der rechten Maustaste auf Package.appxmanifest, und wählen Sie Code anzeigen (F7) aus. Suchen Sie nach <Identity .../>, und ersetzen Sie den Wert Name durch Paket/Identität/Name. Ersetzen Sie den Wert Herausgeber durch den Wert Paket/Identität/Herausgeber aus der zuvor erstellten App.

  13. Drücken Sie zum Ausführen der App auf der Tastatur die Taste F5. Ein Dialogfeld mit dem Registrierungsschlüssel wird angezeigt. Klicken Sie auf OK, um das Dialogfeld zu schließen.

    Registration successful

Ihre App kann jetzt Popupbenachrichtigungen empfangen.

Senden von Testbenachrichtigungen

Der Benachrichtigungsempfang in der App kann schnell durch Senden von Benachrichtigungen im Azure-Portal getestet werden.

  1. Wechseln Sie im Azure-Portal zur Registerkarte Übersicht, und wählen Sie auf der Symbolleiste Testsendevorgang aus.

    Test Send button

  2. Führen Sie im Fenster Testsendevorgang die folgenden Aktionen aus:

    1. Wählen Sie für Plattformen die Option Windows aus.

    2. Wählen Sie für Benachrichtigungstyp die Option Popup aus.

    3. Wählen Sie Send (Senden) aus.

      The Test Send pane

  3. Das Ergebnis des Sendevorgangs wird am unteren Rand des Fensters in der Liste Ergebnis angezeigt. Sie sehen auch eine Warnmeldung.

    Result of Send operation

  4. Sie sehen die Benachrichtigungsmeldung: Testmeldung auf Ihrem Desktop.

    Notification message

Nächste Schritte

Sie haben über das Portal oder über eine Konsolen-App Übertragungsbenachrichtigungen an alle Ihre Windows-Geräte gesendet. Um zu erfahren, wie Sie Pushbenachrichtigungen an bestimmte Geräte senden, fahren Sie mit dem folgenden Tutorial fort: