So wird’s gemacht: Behandeln der Aktivierung über eine Popupbenachrichtigung (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? Siehe So wird’s gemacht: Behandeln der Aktivierung über eine Popupbenachrichtigung (XAML)
In diesem Thema werden die Aktionen beschrieben, mit denen Ihre App reagieren sollte, wenn ein Benutzer auf eine von der App gesendete Popupbenachrichtigung klickt. Die App sollte eine das Popup betreffende Benutzeroberfläche anzeigen. Normalerweise sollte die App in einem Kontext oder mit einer Ansicht gestartet werden, der bzw. die mit dem Inhalt des Popups zusammenhängt. Zu diesem Zweck schließen Sie eine Aktivierungszeichenfolge in die Nutzlast des Popups ein, die dann im Aktivierungsereignis als Argument an die App übergeben wird. Hier sehen Sie den grundlegenden Datenfluss:
- Die App oder der Webdienst erstellt und sendet die Popupnutzlast, einschließlich der Startzeichenfolge.
- Das Popup wird ausgelöst und/oder an das Info-Center gesendet.
- Der Benutzer wählt das Popup aus (durch Klicken oder Berühren).
- Das aktivierte Ereignis wird ausgelöst.
- Der aktivierte Ereignishandler der App liest die Startzeichenfolge.
- Die App wird mit den in der Startzeichenfolge angegebenen Parametern gestartet.
Hinweis Beim Testen der Codefunktionalität für Popupbenachrichtigungen über Microsoft Visual Studio müssen Sie entweder die Debugeinstellung des lokalen Computers oder auf einem Computer unter Windows x86, Windows x64 oder einem Computer mit der Windows-Runtime die Debugeinstellung des Remotecomputers verwenden. Die Verwendung der Debugfunktion des Simulators aus Visual Studio ist nicht möglich — Ihr Code wird zwar im Simulator kompiliert und ausgeführt, das Popup wird jedoch nicht angezeigt.
Wissenswertes
Technologien
- Windows Runtime
Voraussetzungen
Die Ausführungen in diesem Thema setzen Folgendes voraus:
- Grundkenntnisse der Begriffe und Konzepte von Popupbenachrichtigungen. Weitere Informationen finden Sie unter Übersicht über Popupbenachrichtigungen.
- Die Option Toastfähig muss im App-Manifest auf "true" festgelegt sein ("Ja" im Manifest-Editor von Visual Studio), um Popupbenachrichtigungen senden oder empfangen zu können. Weitere Informationen finden Sie unter Schnellstart: Erstellen einer Standardkachel im Manifest-Editor von Visual Studio und So wird's gemacht: Abonnieren von Popupbenachrichtigungen.
- Kenntnisse in XML und der XML-Bearbeitung über Dokumentobjektmodell (DOM)-APIs.
- Kenntnisse im XML-Schema für Popups. Weitere Informationen finden Sie unter Popupschema.
- Kenntnisse zum Erstellen einer einfachen Windows Store-App mit JavaScript mithilfe von Windows-Runtime-APIs. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Windows Store-App mit JavaScript.
Anweisungen
Schritt 1: Hinzufügen von Aktivierungsdaten in der Popupnutzlast
Wenn Ihre App über eine Popupbenachrichtigung aktiviert wird, benötigt sie Informationen zum Inhalt des Popups. So kann sie diesen Inhalt aufgreifen, indem sie anstelle der Standardansicht eine mit dem Popup zusammenhängende Ansicht startet. Ihre App bzw. Ihr Webdienst verwendet beim Erstellen des Popups das launch-Attribut, um diese Aktivierungsinformationen anzugeben. Sie können sich die Zeichenfolge wie ein Befehlszeilenargument vorstellen. Die Zeichenfolge kann beliebige für die App verständliche Informationen enthalten, solange die XML-Nutzlast dadurch nicht ungültig wird. Die XML-Nutzlast des Popups einschließlich der Startzeichenfolge darf insgesamt nicht größer als 5 KB sein.
Wenn Sie keine Startattributzeichenfolge angeben, wird die App normal gestartet, so als hätte der Benutzer sie über die Startseite gestartet.
In diesem Schritt gehen wir davon aus, dass zuvor ein XmlDocument-Objekt mit dem Namen toastXml
erstellt wurde. Dieses Beispiel erstellt das launch-Attribut, weist seinen Zeichenfolgenwert zu und fügt es dann der XML-Nutzlast der Popupbenachrichtigung hinzu. Anweisungen zum Erstellen der vollständigen Popupbenachrichtigung finden Sie unter Schnellstart: Senden einer Popupbenachrichtigung.
var launchAttribute = toastXml.createAttribute("launch");
launchAttribute.value = "{\"myContext\":\"12345\"}";
var toastNode = toastXml.selectSingleNode("/toast");
toastNode.attributes.setNamedItem(launchAttribute);
Durch den obigen Code wird folgendes XML erstellt (unter Verwendung des Inhalts des visual-Elements in Schnellstart: Senden einer Popupbenachrichtigung).
<toast launch="{"myContext":"12345"}">
<visual>
<binding template="ToastImageAndText01">
<image id="1" src="ms-appx:///images/redWide.png" alt="red graphic"/>
<text id="1">Hello World!</text>
</binding>
</visual>
</toast>
Schritt 2: Registrieren für das activated-Ereignis
Wenn der Benutzer auf das Popup klickt oder es durch Berühren auswählt, wird das activated-Ereignis ausgelöst. Ihre App muss das Ereignis über die addEventListener-Funktion registrieren, damit sie über das Ereignis informiert wird.
Hinweis Falls Sie dem Popup keine Startattributzeichenfolge hinzufügen und Ihre App bei der Auswahl des Popups bereits ausgeführt wird, wird das activated-Ereignis nicht ausgelöst.
WinJS.Application.addEventListener("activated", onActivatedHandler, false);
Schritt 3: Implementieren eines Handlers für das activated-Ereignis des Popups
Der registrierte Ereignishandler empfängt unabhängig vom Aktivierungstyp alle Aktivierungsereignisse. Die kind-Eigenschaft in der Ereignisbenachrichtigung gibt den Typ des Aktivierungsereignisses an. Wenn der Benutzer auf ein Popup klickt, für das ein launch-Attribut in der XML-Nutzlast angegeben ist, wird ein Aktivierungsereignis vom Typ launch ausgelöst. Das gleiche Ereignis wird ausgelöst, wenn ein Benutzer auf die primäre oder sekundäre Kachel einer App tippt.
Die Aktivierungszeichenfolge, die Sie in Schritt 1 mit dem launch-Attribut angegeben haben, ist in der arguments-Eigenschaft der Ereignisbenachrichtigung enthalten.
Diese Beispiel zeigt die Gliederung des in Schritt 2 registrierten activated-Ereignishandlers.
function onActivatedHandler(args) {
if (args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {
var launchString = args.detail.arguments;
// Handle activation as required for your app, using the launch string.
}
}
Verwandte Themen
Beispiel für Popupbenachrichtigungen
Windows.UI.Notifications API namespace
Übersicht über Popupbenachrichtigungen
Richtlinien und Prüfliste für Popupbenachrichtigungen