Schnellstart: Abfangen von Pushbenachrichtigungen für ausgeführte Anwendungen (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

Hinweis  Sie verwenden nicht JavaScript? Weitere Informationen finden Sie unter Schnellstart: Abfangen von Pushbenachrichtigungen für ausgeführte Apps (XAML).

 

Sie können Ihre App so entwerfen, dass sie Pushbenachrichtigungen abfangen und mit einem nicht standardmäßigen Verhalten auf diese Benachrichtigungen reagieren kann. Dieses Vorgehensweise kann für alle Pushbenachrichtigungsarten angewendet werden, sie ist jedoch besonders hilfreich für Popupbenachrichtigungen und unformatierte Benachrichtigungen.

Wenn der Clouddienst Ihrer App eine Benachrichtigung an Windows sendet, kann Ihre App diese Benachrichtigung abfangen und behandeln, bevor sie ein Popup anzeigt, eine Kachel oder ein Signal aktualisiert oder eine unformatierte Benachrichtigung an eine Hintergrundaufgabe sendet. Die App kann auch die Anzeige oder Aktualisierung dieser Elemente unterdrücken. Das Implementieren eines Ereignishandlers für das Übermitteln von Benachrichtigungen ist optional. Dieser Ereignishandler eignet sich am besten in Szenarios, in denen die App eingehende Popups behandeln und unterdrücken soll, anstatt sie für den Benutzer anzuzeigen.

Hinweis  Ab Windows Phone 8.1 kann das Smartphone die Anzeige einer Popupbenachrichtigung auch mit der Eigenschaft ToastNotification.suppressPopup oder ScheduledToastNotification.suppressPopup im XML-Inhalt der Benachrichtigung verhindern.

Hinweis  Diese Vorgehensweise kann für alle ausgeführten Apps angewendet werden. Benachrichtigungen, die gesendet werden, wenn die App nicht ausgeführt wird und der Handler nicht implementiert ist, werden normal übermittelt, d. h. Kacheln werden aktualisiert, Popups angezeigt und unformatierte Benachrichtigungen an Hintergrundaufgaben übermittelt (falls implementiert).

 

Voraussetzungen

Um dieses Thema zu verstehen oder den darin bereitgestellten Code verwenden zu können, benötigen Sie Folgendes:

Anweisungen

1. Optional: Deklarieren einer Namespacevariable

In diesem Schritt wird Ihnen ein Kurzname zur Verfügung gestellt, den Sie anstelle des vollständigen Namespacenamens verwenden können. Dies ist das Äquivalent der "using"-Anweisung in C# oder der "Imports"-Anweisung in Visual Basic. Es ermöglicht es Ihnen, den Code zu vereinfachen.

Hinweis  Im folgenden Code wird davon ausgegangen, dass diese Variable deklariert wurde.

 


var pushNotifications = Windows.Networking.PushNotifications;

2. Erstellen eines Pushbenachrichtigungskanals

Damit von einem Cloudserver gesendete Pushbenachrichtigungen empfangen werden können, ist ein gültiger Benachrichtigungskanal erforderlich. Der Ereignislistener überwacht diesen Kanal auf eingehende Benachrichtigungen. Weitere Informationen zum Erstellen eines Kanals finden Sie unter So wird's gemacht: Anfordern, Erstellen und Speichern eines Benachrichtigungskanals.

In diesem Beispiel wird ein Kanal erstellt, auf den über "newChannel.uri" zugegriffen werden kann.


var channel;
var channelOperation = pushNotifications.PushNotificationChannelManager.createPushNotificationChannelForApplicationAsync();

return channelOperation.then(function (newChannel) {
    channel = newChannel;
    },
    function (error) {
        // ...
    }
);

3. Erstellen einer Funktion zum Behandeln des Pushbenachrichtigungsereignisses

Im folgenden Beispiel wird die Behandlung aller Benachrichtigungsarten beschrieben.

In der letzten Codezeile in diesem Beispiel wird die cancel-Eigenschaft des Ereignisses auf true festgelegt. Dadurch wird verhindert, dass die Benachrichtigung eine Änderung der Benutzeroberfläche vornehmen kann, wie z. B. das Aktualisieren einer Kachel oder eines Signals oder das Anzeigen eines Popups. Bei unformatierten Benachrichtigungen wird verhindert, dass die Benachrichtigung an eine Hintergrundaufgabe (falls implementiert) übermittelt wird. Somit wird die Reaktion auf die Benachrichtigung ausschließlich vom Handler bestimmt.


var content;
function onPushNotification(e) {
    var notificationPayload; 

    switch (e.notificationType) { 
        case pushNotifications.PushNotificationType.toast: 
            notificationPayload = e.toastNotification.content.getXml(); 
            break; 

        case pushNotifications.PushNotificationType.tile: 
            notificationPayload = e.tileNotification.content.getXml(); 
            break; 

        case pushNotifications.PushNotificationType.badge: 
            notificationPayload = e.badgeNotification.content.getXml(); 
            break; 

        case pushNotifications.PushNotificationType.raw: 
            notificationPayload = e.rawNotification.content; 
            break; 
    } 

    e.cancel = true;
}

4. Hinzufügen eines Ereignishandlers für empfangene Pushbenachrichtigungen

Verwenden Sie den in Schritt 1 erstellten Kanal, um dem in Schritt 2 erstellten Ereignishandler das PushNotificationReceived-Ereignis zuzuweisen.


channel.addEventListener("pushnotificationreceived", onPushNotification, false);

Zusammenfassung

Durch das Abfangen und Behandeln von Pushbenachrichtigungen für Ihre ausgeführte App können Sie die Auswirkungen dieser Benachrichtigungen in Ihrer App besser steuern. Sie können beispielsweise festlegen, dass eine Popupbenachrichtigung oben im Bildschirm angezeigt wird, wenn gerade ein Spiel ausgeführt wird, oder einen Ereignishandler verwenden, um den Inhalt der Benachrichtigung auf weniger aufdringliche Art und Weise in die Spiel-UI zu integrieren.

Verwandte Themen

Beispiele

Beispiel für unformatierte Benachrichtigungen

Beispiel für Pushbenachrichtigungen und periodische Benachrichtigungen

Informationen zum Konzept

Übersicht über den Windows-Pushbenachrichtigungsdienst (Windows Push Notification Service, WNS)

Übersicht über unformatierte Benachrichtigungen

Bewährte Methoden

Richtlinien und Prüfliste für Pushbenachrichtigungen

Richtlinien und Prüfliste für unformatierte Benachrichtigungen

Anleitungen

Schnellstart: Erstellen und Registrieren einer Hintergrundaufgabe für unformatierte Benachrichtigungen