Language: HTML | XAML

So wird's gemacht: Anfordern, Erstellen und Speichern eines Benachrichtigungskanals (Windows-Runtime-Apps mit JavaScript und HTML)

Applies to Windows and Windows Phone

Hinweis  Sie verwenden nicht JavaScript? Weitere Informationen finden Sie unter So wird's gemacht: Anfordern, Erstellen und Speichern eines Benachrichtigungskanals (Windows Store-Apps mit C#/VB/C++ und XAML).

Sie können einen Kanal-URI (Uniform Resource Identifier) öffnen, über den die App Push-Benachrichtigungen empfangen kann. Den Kanal können Sie dann an den Server senden, der über diesen Push-Benachrichtigungen sendet, und ihn schließen, wenn Sie ihn nicht mehr benötigen. Ein Kanal ist eine eindeutige Adresse, die einen einzelnen Benutzer an einem einzelnen Gerät für eine bestimmte App oder sekundäre Kachel darstellt.

Sie sollten bei jedem Start der App einen neuen Kanal anfordern und den Cloudserver aktualisieren, wenn sich der URI ändert. Weitere Informationen finden Sie unter "Anmerkungen".

Wichtig  Benachrichtigungskanäle laufen nach 30 Tagen automatisch ab.

Wissenswertes

Technologien

  • Windows Runtime

Voraussetzungen

  • Grundkenntnisse im Bereich XML und in Bezug auf die Begriffe und Konzepte für Kacheln und Benachrichtigungen In diesem Thema wird zudem vorausgesetzt, dass Sie mit der Erstellung einer einfachen Windows Store-App mit JavaScript und Windows Runtime-APIs vertraut sind.
  • Kenntnisse über Pushbenachrichtigungen sowie über die Konzepte, Anforderungen und die Verwendung des Windows-Pushbenachrichtigungsdiensts (Windows Push Notification Service, WNS). Diese werden unter Übersicht über den Windows-Pushbenachrichtigungsdienst (Windows Push Notification Service, WNS) erläutert.

Anweisungen

Schritt 1: Anfordern eines Kanal-URIs

In diesem Beispiel wird ein Kanal-URI angefordert. Die Anforderung wird an die Benachrichtigungsclientplattform (Notification Client Platform) gestellt, die wiederum den Kanal-URI von WNS anfordert. Nach Abschluss der Anforderung ist der zurückgegebene Wert ein PushNotificationChannel-Objekt, das den URI enthält.



var channel;
var pushNotifications = Windows.Networking.PushNotifications;
var channelOperation = pushNotifications.PushNotificationChannelManager.createPushNotificationChannelForApplicationAsync();

return channelOperation.then(function (newChannel) {
    channel = newChannel;
    // Success. The channel URI is found in newChannel.uri.
    },
    function (error) {
        // Could not create a channel. Retrieve the error through error.number.
    }
);

Schritt 2: Senden des Kanal-URIs an den Server

Der Kanal-URI wird in eine HTTP-POST-Anforderung gepackt und an den Server gesendet.

Wichtig  Sie sollten diese Informationen auf sichere Weise an den Server senden. Sie sollten anfordern, dass sich die App bei der Übertragung des Kanal-URIs beim Server authentifizieren muss. Verschlüsseln Sie die Informationen, und verwenden Sie ein sicheres Protokoll wie HTTPS.



var serverUrl = "http://www.contoso.com";

var xhr = new WinJS.xhr({
        type: "POST", 
        url: serverUrl,
        headers: {"Content-Type": "application/x-www-form-urlencoded"},
        data: "channelUri=" + channel.uri
}).then(function (req) {
        // Channel URI successfully sent to server. Retrieve the response from req.response.
    },
    function (req) {
        // Could not send channel URI to server. Retrieve the error through req.statusText.
    }
);

Anmerkungen

Anfordern von Kanälen

Bei jedem Aufruf Ihrer App sollte ein neuer Kanal angefordert werden. Verwenden Sie dazu die folgende Logik:

  1. Fordern Sie einen Kanal an.
  2. Vergleichen Sie den neuen Kanal mit dem vorherigen Kanal. Wenn die Kanäle identisch sind, ist keine weitere Aktion Ihrerseits erforderlich. Beachten Sie dabei Folgendes: Ihre App muss den Kanal bei jedem erfolgreichen Senden an den Dienst lokal speichern, sodass der Kanal für den späteren Vergleich verfügbar ist.
  3. Wenn der Kanal geändert wurde, senden Sie den neuen Kanal an den Webdienst. Fügen Sie eine Fehlerbehandlungslogik ein, mit deren Hilfe in den folgenden Fällen grundsätzlich ein neuer Kanal gesendet wird:
    • Ihre App hat zuvor noch nie einen Kanal an den Webdienst gesendet.
    • Der letzte Versuch Ihrer App, den Kanal an den Webdienst zu senden, war nicht erfolgreich.

Verschiedene Aufrufe der createPushNotificationChannelForApplicationAsync-Methode geben nicht immer einen anderen Kanal zurück. Wenn sich der Kanal seit dem letzten Aufruf nicht geändert hat, sollte Ihre App Ressourcen bezüglich Aufwand und Internetdatenverkehr sparen, indem derselbe Kanal nicht erneut an den Dienst gesendet wird. Für eine App können mehrere gültige Kanal-URIs gleichzeitig vorhanden sein. Da jeder eindeutige Kanal bis zu seinem Ablauf gültig bleibt, schadet es nicht, einen neuen Kanal anzufordern, weil sich dies nicht auf die Ablaufzeit vorheriger Kanäle auswirkt.

Indem Sie bei jedem Aufruf der App einen neuen Kanal anfordern, maximieren Sie die Chancen, stets auf einen gültigen Kanal zugreifen zu können. Dies ist insbesondere dann wichtig, wenn es für das Kachel- oder Popupszenario unerlässlich ist, dass Inhalte stets aktuell sind. Wenn Sie nicht sicher sind, ob Benutzer Ihre App öfter als einmal alle 30 Tage ausführen, können Sie eine Hintergrundaufgabe implementieren, damit der Kanalanforderungscode regelmäßig ausgeführt wird.

Behandeln von Fehlern in Kanalanforderungen

Der Aufruf der createPushNotificationChannelForApplicationAsync-Methode kann fehlschlagen, wenn das Internet nicht verfügbar ist. Um dies zu behandeln, können Sie dem in Schritt 2 gezeigten Code eine Wiederholungslogik hinzufügen. Es werden drei Versuche mit jeweils zehn Sekunden Verzögerung zwischen jedem fehlgeschlagenen Versuch empfohlen. Wenn all drei Versuche fehlschlagen, sollte Ihre App warten, bis sie der Benutzer das nächste Mal startet, um den Vorgang zu wiederholen.

Schließen von Kanälen

Mit einem Aufruf der close-Methode kann Ihre App die Übermittlung von Benachrichtigungen auf allen Kanälen sofort beenden. Obwohl es nicht der üblichen Vorgehensweise für die App entspricht, möchten Sie möglicherweise in bestimmten Szenarien die Übermittlung von sämtlichen Benachrichtigungen an die App beenden. Wenn Ihre App z. B. auf dem Konzept von Benutzerkonten basiert und sich ein Benutzer bei der App abmeldet, ist es sinnvoll, dass auf der Kachel die persönlichen Informationen des jeweiligen Benutzers nicht mehr angezeigt werden. Um den Inhalt der Kachel zu löschen und die Übermittlung von Benachrichtigungen zu beenden, sollten Sie die folgenden Aktionen ausführen:

  1. Halten Sie alle Kachelupdates an, indem Sie die PushNotificationChannel.close-Methode auf allen Benachrichtigungskanälen aufrufen, über die Kachel-, Popup-, Signalbenachrichtigungen oder unformatierte Benachrichtigungen an einen Benutzer übermittelt werden. Durch den Aufruf der close-Methode wird sichergestellt, dass keine weiteren Benachrichtigungen für den jeweiligen Benutzer an den Client übermittelt werden können.
  2. Löschen Sie den Inhalt der Kachel, indem Sie die TileUpdater.clear-Methode aufrufen, um die Daten des vorherigen Benutzers aus der Kachel zu entfernen.

Verwandte Themen

Beispiel für Pushbenachrichtigungen und periodische Benachrichtigungen
Übersicht über den Windows-Pushbenachrichtigungsdienst (Windows Push Notification Service, WNS)
Schnellstart: Senden einer Pushbenachrichtigung
So wird's gemacht: Authentifizieren mit dem Windows-Pushbenachrichtigungsdienst (Windows Push Notification Service, WNS)
So wird's gemacht: Verwalten von Kanalablauf und -erneuerung
Richtlinien und Prüfliste für Pushbenachrichtigungen
Anforderungs- und Antwortheader des Pushbenachrichtigungsdiensts

 

 

Anzeigen:
© 2014 Microsoft