Hinzufügen von Pushbenachrichtigungen zu Ihrer Windows-App
Überblick
In diesem Lernprogramm fügen Sie dem Windows-Schnellstartprojekt Pushbenachrichtigungen hinzu, sodass jedes Mal, wenn ein Datensatz eingefügt wird, eine Pushbenachrichtigung an das Gerät gesendet wird.
Wenn Sie das heruntergeladene Schnellstartserverprojekt nicht verwenden, benötigen Sie das Paket für die Pushbenachrichtigungserweiterung. Weitere Informationen finden Sie unter Arbeiten mit dem .NET-Back-End-Server-SDK für Azure Mobile Apps .
Konfigurieren eines Benachrichtigungshubs
Das Feature "Mobile Apps" von Azure App Service verwendet Azure Notification Hubs zum Senden von Pushs, sodass Sie einen Benachrichtigungshub für Ihre mobile App konfigurieren.
Wechseln Sie im Azure-Portalzu App Services, und wählen Sie dann Ihr App-Back-End aus. Wählen Sie unter Einstellungendie Option Pushaus.
Um der App eine Benachrichtigungshubressource hinzuzufügen, wählen Sie Verbindenaus. Sie können entweder einen Hub erstellen oder eine Verbindung mit einem vorhandenen herstellen.
Jetzt haben Sie einen Benachrichtigungshub mit Ihrem Back-End-Projekt für mobile Apps verbunden. Später konfigurieren Sie diesen Benachrichtigungshub so, dass eine Verbindung mit einem Plattformbenachrichtigungssystem (PNS) hergestellt wird, um auf Geräte zu übertragen.
Registrieren der App für Pushbenachrichtigungen
Sie müssen Ihre App an den Microsoft Store übermitteln und dann Ihr Serverprojekt so konfigurieren, dass es in windows-Pushbenachrichtigungsdienste (Windows Push Notification Services, WNS) integriert wird, um Push zu senden.
Klicken Sie im Visual Studio-Projektmappen-Explorer mit der rechten Maustaste auf das UWP-App-Projekt, und klicken Sie auf Store-App>mit dem Store verknüpfen....
Klicken Sie im Assistenten auf "Weiter", melden Sie sich mit Ihrem Microsoft-Konto an, geben Sie in " Reservieren" einen Namen für Ihre App ein, und klicken Sie dann auf " Reservieren".
Nachdem die App-Registrierung erfolgreich erstellt wurde, wählen Sie den neuen App-Namen aus, klicken Sie auf "Weiter", und klicken Sie dann auf " Zuordnen". Dadurch werden dem Anwendungsmanifest die erforderlichen Microsoft Store-Registrierungsinformationen hinzugefügt.
Navigieren Sie zum Anwendungsregistrierungsportal , und melden Sie sich mit Ihrem Microsoft-Konto an. Klicken Sie im vorherigen Schritt auf die Windows Store-App, die Sie zugeordnet haben.
Notieren Sie sich auf der Registrierungsseite den Wert unter Anwendungsgeheimnisse und der Paket-SID, den Sie als Nächstes zum Konfigurieren Des mobilen App-Back-End verwenden.
Wichtig
Der geheime Clientschlüssel und die Paket-SID sind wichtige Sicherheitsanmeldeinformationen. Teilen Sie diese Werte nicht mit anderen Personen, oder verteilen Sie sie mit Ihrer App. Die Anwendungs-ID wird mit dem geheimen Schlüssel zum Konfigurieren der Microsoft-Kontoauthentifizierung verwendet.
App Center enthält außerdem Anweisungen zum Konfigurieren von UWP-Apps für Pushbenachrichtigungen.
Konfigurieren des Back-End zum Senden von Pushbenachrichtigungen
Wählen Sie im Azure-PortalAlle durchsuchen>App Services aus. Wählen Sie dann Ihr Mobile Apps-Back-End aus. Unter Einstellungenwählen Sie App Service Push-aus. Wählen Sie dann Ihren Benachrichtigungshubnamen aus.
Wechseln Sie zu Windows (WNS). Geben Sie dann den Sicherheitsschlüssel (geheimer Clientschlüssel) und die Paket-SID ein, die Sie von der Live Services-Website erhalten haben. Wählen Sie als Nächstes "Speichern" aus.
Ihr Back-End ist jetzt für die Verwendung von WNS zum Senden von Pushbenachrichtigungen konfiguriert.
Aktualisieren des Servers zum Senden von Pushbenachrichtigungen
Verwenden Sie das folgende Verfahren, das Ihrem Back-End-Projekttyp entspricht – entweder .NET-Back-End oder Node.js Back-End.
.NET-Back-End-Projekt
Klicken Sie in Visual Studio mit der rechten Maustaste auf das Serverprojekt, und klicken Sie auf " NuGet-Pakete verwalten", suchen Sie nach "Microsoft.Azure.NotificationHubs", und klicken Sie dann auf "Installieren". Dadurch wird die Clientbibliothek für Benachrichtigungshubs installiert.
Erweitern Sie Controllers, öffnen Sie TodoItemController.cs, und fügen Sie die folgenden using-Anweisungen hinzu:
using System.Collections.Generic; using Microsoft.Azure.NotificationHubs; using Microsoft.Azure.Mobile.Server.Config;
Fügen Sie in der PostTodoItem-Methode den folgenden Code nach dem Aufruf von InsertAsync hinzu:
// Get the settings for the server project. HttpConfiguration config = this.Configuration; MobileAppSettingsDictionary settings = this.Configuration.GetMobileAppSettingsProvider().GetMobileAppSettings(); // Get the Notification Hubs credentials for the Mobile App. string notificationHubName = settings.NotificationHubName; string notificationHubConnection = settings .Connections[MobileAppSettingsKeys.NotificationHubConnectionString].ConnectionString; // Create the notification hub client. NotificationHubClient hub = NotificationHubClient .CreateClientFromConnectionString(notificationHubConnection, notificationHubName); // Define a WNS payload var windowsToastPayload = @"<toast><visual><binding template=""ToastText01""><text id=""1"">" + item.Text + @"</text></binding></visual></toast>"; try { // Send the push notification. var result = await hub.SendWindowsNativeNotificationAsync(windowsToastPayload); // Write the success result to the logs. config.Services.GetTraceWriter().Info(result.State.ToString()); } catch (System.Exception ex) { // Write the failure result to the logs. config.Services.GetTraceWriter() .Error(ex.Message, null, "Push.SendAsync Error"); }
Dieser Code weist den Benachrichtigungshub an, eine Pushbenachrichtigung zu senden, nachdem ein neues Element eingefügt wurde.
Veröffentlichen Sie das Serverprojekt erneut.
Node.js Backend-Projekt
Richten Sie Ihr Back-End-Projekt ein.
Ersetzen Sie den vorhandenen Code in der datei todoitem.js durch Folgendes:
var azureMobileApps = require('azure-mobile-apps'), promises = require('azure-mobile-apps/src/utilities/promises'), logger = require('azure-mobile-apps/src/logger'); var table = azureMobileApps.table(); table.insert(function (context) { // For more information about the Notification Hubs JavaScript SDK, // see https://aka.ms/nodejshubs logger.info('Running TodoItem.insert'); // Define the WNS payload that contains the new item Text. var payload = "<toast><visual><binding template=\ToastText01\><text id=\"1\">" + context.item.text + "</text></binding></visual></toast>"; // Execute the insert. The insert returns the results as a Promise, // Do the push as a post-execute action within the promise flow. return context.execute() .then(function (results) { // Only do the push if configured if (context.push) { // Send a WNS native toast notification. context.push.wns.sendToast(null, payload, function (error) { if (error) { logger.error('Error while sending push notification: ', error); } else { logger.info('Push notification sent successfully!'); } }); } // Don't forget to return the results from the context.execute() return results; }) .catch(function (error) { logger.error('Error while running context.execute: ', error); }); }); module.exports = table;
Dadurch wird eine WNS-Toast-Benachrichtigung gesendet, die item.text enthält, wenn ein neues Todo-Element eingefügt wird.
Wenn Sie die Datei auf Ihrem lokalen Computer bearbeiten, veröffentlichen Sie das Serverprojekt erneut.
Hinzufügen von Pushbenachrichtigungen zu Ihrer App
Als Nächstes muss Ihre App sich beim Starten für die Push-Benachrichtigungen registrieren. Wenn Sie die Authentifizierung bereits aktiviert haben, stellen Sie sicher, dass sich der Benutzer anmeldet, bevor Er versucht, sich für Pushbenachrichtigungen zu registrieren.
Öffnen Sie die App.xaml.cs Projektdatei, und fügen Sie die folgenden
using
Anweisungen hinzu:using System.Threading.Tasks; using Windows.Networking.PushNotifications;
Fügen Sie in derselben Datei der App-Klasse die folgende InitNotificationsAsync-Methodendefinition hinzu:
private async Task InitNotificationsAsync() { // Get a channel URI from WNS. var channel = await PushNotificationChannelManager .CreatePushNotificationChannelForApplicationAsync(); // Register the channel URI with Notification Hubs. await App.MobileService.GetPush().RegisterAsync(channel.Uri); }
Dieser Code ruft den ChannelURI für die App von WNS ab und registriert diesen ChannelURI dann bei Ihrer App Service Mobile App.
Fügen Sie oben im OnLaunched-Ereignishandler in App.xaml.cs den asynchronen Modifizierer zur Methodendefinition hinzu, und fügen Sie den folgenden Aufruf der neuen InitNotificationsAsync-Methode hinzu, wie im folgenden Beispiel gezeigt:
protected async override void OnLaunched(LaunchActivatedEventArgs e) { await InitNotificationsAsync(); // ... }
Dadurch wird sichergestellt, dass der kurzlebige ChannelURI jedes Mal registriert wird, wenn die Anwendung gestartet wird.
Erstellen Sie Ihr UWP-App-Projekt neu. Ihre App kann jetzt Toast-Benachrichtigungen empfangen.
Testen von Pushbenachrichtigungen in Ihrer App
Klicken Sie mit der rechten Maustaste auf das Windows Store-Projekt, klicken Sie auf "Als Startprojekt festlegen", und drücken Sie dann F5, um die Windows Store-App auszuführen.
Nach dem Starten der App wird das Gerät für Pushbenachrichtigungen registriert.
Beenden Sie die Windows Store-App, und wiederholen Sie den vorherigen Schritt für die Windows Phone Store-App.
Zu diesem Zeitpunkt werden beide Geräte registriert, um Pushbenachrichtigungen zu empfangen.
Führen Sie die Windows Store-App erneut aus, und geben Sie Text in "TodoItem einfügen" ein, und klicken Sie dann auf " Speichern".
Beachten Sie, dass nach Abschluss des Einfügens sowohl der Windows Store als auch die Windows Phone-Apps eine Pushbenachrichtigung von WNS erhalten. Die Benachrichtigung wird auf Windows Phone auch dann angezeigt, wenn die App nicht ausgeführt wird.
Nächste Schritte
Weitere Informationen zu Pushbenachrichtigungen:
- Verwenden des verwalteten Clients für Azure Mobile Apps Vorlagen bieten Ihnen Flexibilität beim Senden plattformübergreifender Pushs und lokalisierter Pushs. Erfahren Sie, wie Sie Vorlagen registrieren.
- Diagnostizieren von Problemen mit Pushbenachrichtigungen Es gibt verschiedene Gründe, warum Benachrichtigungen gelöscht werden oder nicht auf Geräten enden. In diesem Thema erfahren Sie, wie Sie die Ursache von Pushbenachrichtigungsfehlern analysieren und ermitteln.
Erwägen Sie, mit einem der folgenden Lernprogramme fortzufahren:
- Hinzufügen der Authentifizierung zu Ihrer App Erfahren Sie, wie Sie Benutzer Ihrer App mit einem Identitätsanbieter authentifizieren.
- Aktivieren der Offlinesynchronisierung für Ihre App Erfahren Sie, wie Sie Ihre App mithilfe eines Mobilen App-Back-Ends offline unterstützen. Die Offlinesynchronisierung ermöglicht Endbenutzern die Interaktion mit einer mobilen App – Anzeigen, Hinzufügen oder Ändern von Daten – auch wenn keine Netzwerkverbindung vorhanden ist.