Freigeben über


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

In diesem Lernprogramm erstellen Sie einen Benachrichtigungshub zum Senden von Pushbenachrichtigungen an eine UWP-App (Universelle Windows-Plattform). Sie erstellen eine leere Windows Store-App, die Pushbenachrichtigungen mithilfe des Windows-Pushbenachrichtigungsdiensts (Windows Push Notification Service, WNS) empfängt. Anschließend verwenden Sie Ihren Benachrichtigungshub, um Pushbenachrichtigungen auf alle Geräte zu übertragen, auf denen Ihre App ausgeführt wird.

Hinweis

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

Sie führen die folgenden Schritte aus:

  • Erstellen einer App im Windows Store
  • Erstellen eines Benachrichtigungshubs
  • Erstellen einer Windows-Beispiel-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. Das Beispiel in diesem Lernprogramm verwendet Visual Studio 2019.
  • UWP-App-Entwicklungstools installiert.
  • 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 Systemkachel aus.
    • Wählen Sie im linken Menü Benachrichtigungen und Aktionen aus.
    • Vergewissern Sie sich, dass die Einstellung " Benachrichtigungen von Apps und anderen Absendern abrufen " aktiviert ist. Wenn sie nicht aktiviert ist, aktivieren Sie sie.

Das Abschließen dieses Lernprogramms ist eine Voraussetzung für alle anderen Lernprogramme für Benachrichtigungshubs für UWP-Apps.

Erstellen einer App im Windows Store

Hinweis

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

Um Pushbenachrichtigungen an UWP-Apps zu senden, ordnen Sie Ihre App dem Windows Store zu. Konfigurieren Sie dann Ihren Benachrichtigungshub für die Integration in WNS.

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

    Schaltfläche

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

    Store-App-Name

  3. Erweitern Sie die Produktverwaltung, und wählen Sie dann "Produktidentität" aus. Notieren Sie sich die Paket-SID-, Package/Identity/Name-, Package/Identity/Publisher- und Package/Properties/PublisherDisplayName-Werte .

    Partnercenter-Apps

  4. Wählen Sie unter "Produktverwaltung" WNS/MPNS und dann das App-Registrierungsportal aus. Melden Sie sich bei Ihrem Microsoft-Konto an. Die Anwendungsregistrierungsseite wird auf einer neuen Registerkarte geöffnet.

    WNS-Seite

  5. Wählen Sie unter "Essentials" die Option "Clientanmeldeinformationen" aus: Hinzufügen eines Zertifikats oder eines geheimen Schlüssels.

    Einstellungen für den Benachrichtigungshub im Azure-Portal

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

    Warnung

    Sie können geheime Clientschlüsselwerte (Anwendungsgeheimnisse) nur unmittelbar nach dem Erstellen anzeigen. Achten Sie darauf, den geheimen Schlüssel zu speichern, bevor Sie die Seite verlassen.

    Geheimer Clientschlüssel im Portal

    Warnung

    Das Anwendungsgeheimnis und die Paket-SID sind wichtige Sicherheitsanmeldeinformationen. Teilen Sie diese Werte nicht mit anderen Personen, oder verteilen Sie sie mit Ihrer App.

Erstellen eines Benachrichtigungshubs

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie im Menü links Alle Dienste aus. Screenshot: Auswählen aller Dienste für einen vorhandenen 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.

    Screenshot: Filtern nach Notification Hubs

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

    Screenshot: Erstellen eines neuen Notification Hubs

  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 mit 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 der Details der Verfügbarkeitszone.

    7. Wählen Sie "Erstellen" aus.

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

Konfigurieren von WNS-Einstellungen für den Hub

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

  2. Geben Sie Werte für die Paket-SID (z. B. "ms-app://<Your Package SID>") und den Security Key (den Anwendungsschlüssel) ein, den Sie im vorherigen Abschnitt angegeben haben.

  3. Klicken Sie auf der Symbolleiste auf " Speichern ".

    Die Felder

Ihr Benachrichtigungshub ist jetzt für die Arbeit mit WNS konfiguriert. Sie verfügen über die Verbindungszeichenfolgen, um Ihre App zu registrieren und Benachrichtigungen zu senden.

Erstellen einer Windows-Beispiel-App

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

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

    • Geben Sie oben im Suchfeld "Windows Universal" ein.

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

      Dialogfeld

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

    • Wählen Sie "Erstellen" aus.

  3. Akzeptieren Sie die Standardwerte für die Ziel - und Mindestplattformversionen , und wählen Sie "OK" aus.

  4. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Windows Store-App-Projekt, wählen Sie "Veröffentlichen" und dann " App dem Store zuordnen" aus. Der Assistent zum Zuordnen Ihrer App zum Windows Store wird 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 "Weiter" und dann "Zuordnen" aus. Dadurch werden dem Anwendungsmanifest die erforderlichen Windows Store-Registrierungsinformationen 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 im Suchfeld "WindowsAzure.Messaging.Managed" ein, wählen Sie "Installieren" aus, und akzeptieren Sie die Nutzungsbedingungen.

    Das Fenster

    Diese Aktion lädt herunter, installiert und fügt mithilfe des NuGet-Pakets "Microsoft.Azure.NotificationHubs" einen Verweis auf die Azure Notification Hubs-Bibliothek für Windows hinzu.

  9. Öffnen Sie die App.xaml.cs Projektdatei, 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 des App.xaml.cs Projekts die App Klasse, und fügen Sie die folgende InitNotificationsAsync Methodendefinition hinzu. Ersetzen Sie den <your hub name> Namen des Benachrichtigungshubs, den Sie im Azure-Portal erstellt haben, und ersetzen Sie <Your DefaultListenSharedAccessSignature connection string> sie durch die DefaultListenSharedAccessSignature Verbindungszeichenfolge von der Access-Richtlinienseite Ihres Benachrichtigungshubs:

    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 diesen Kanal-URI dann bei Ihrem Benachrichtigungshub.

    Hinweis

    Ersetzen Sie den hub name Platzhalter durch den Namen des Benachrichtigungshubs, der im Azure-Portal angezeigt wird. Ersetzen Sie außerdem den Platzhalter für die Verbindungszeichenfolge durch die DefaultListenSharedAccessSignature Verbindungszeichenfolge, die Sie auf der Access-Richtlinienseite Ihres Benachrichtigungshubs in einem vorherigen Abschnitt abgerufen haben.

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

    InitNotificationsAsync();
    

    Diese Aktion garantiert, dass der Kanal-URI bei jedem Start der Anwendung im Benachrichtigungshub registriert ist.

  12. Klicken Sie mit der rechten Maustaste, 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. Um die App auszuführen, drücken Sie die F5-TASTE der Tastatur. Ein Dialogfeld mit dem Registrierungsschlüssel wird angezeigt. Klicken Sie auf 'OK', um das Dialogfeld zu schließen.

    Registrierung erfolgreich

Ihre App kann jetzt Toast-Benachrichtigungen empfangen.

Senden von Testbenachrichtigungen

Sie können den Empfang von Benachrichtigungen in Ihrer App schnell testen, indem Sie Benachrichtigungen im Azure-Portal senden.

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

    Schaltfläche

  2. Führen Sie im Fenster " Senden testen " die folgenden Aktionen aus:

    • Wählen Sie für PlattformenWindows aus.

    • Wählen Sie für den BenachrichtigungstypToast aus.

    • Wählen Sie "Senden" aus.

      Bereich

  3. Sehen Sie sich das Ergebnis des Sendevorgangs in der Ergebnisliste am unteren Rand des Fensters an. Außerdem wird eine Warnmeldung angezeigt.

    Ergebnis des Sendevorgangs

  4. Die Benachrichtigung wird angezeigt: Testnachricht auf dem Desktop.

    Benachrichtigung

Nächste Schritte

Sie haben über das Azure-Portal oder 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: