Planen einer Popupbenachrichtigung
Mit geplanten Popupbenachrichtigungen können Sie planen, dass eine Benachrichtigung zu einem späteren Zeitpunkt angezeigt wird, unabhängig davon, ob Ihre App zu diesem Zeitpunkt ausgeführt wird. Dies ist nützlich für Szenarien wie das Anzeigen von Erinnerungen oder andere Nachverfolgungsaufgaben für den Benutzer, bei denen die Zeit und der Inhalt der Benachrichtigung vorab bekannt sind.
Beachten Sie, dass geplante Popupbenachrichtigungen ein Übermittlungsfenster von 5 Minuten aufweisen. Wenn der Computer während der geplanten Zustellungszeit deaktiviert ist und länger als 5 Minuten deaktiviert bleibt, wird die Benachrichtigung "gelöscht", da sie für den Benutzer nicht mehr relevant ist. Wenn Sie eine garantierte Zustellung von Benachrichtigungen benötigen, unabhängig davon, wie lange der Computer ausgeschaltet wurde, empfehlen wir die Verwendung einer Hintergrundaufgabe mit einem Zeitauslöser, wie in diesem Codebeispiel veranschaulicht.
Wichtig
Desktopanwendungen (sowohl verpackt als auch entpackt) weisen geringfügig unterschiedliche Schritte zum Senden von Benachrichtigungen und zum Behandeln der Aktivierung auf. Folgen Sie den nachstehenden Anweisungen, ersetzen ToastNotificationManager
Sie jedoch durch die DesktopNotificationManagerCompat
Klasse aus der Dokumentation zu Desktop-Apps .
Wichtige APIs: ScheduledToastNotification-Klasse
Voraussetzungen
Um dieses Thema vollständig zu verstehen, ist Folgendes hilfreich...
- Ein funktionierendes Wissen über Popupbenachrichtigungsbegriffe und -konzepte. Weitere Informationen finden Sie unter Übersicht über Popups und Info-Center.
- Vertrautheit mit Windows 10-Popupbenachrichtigungsinhalten. Weitere Informationen finden Sie in der Dokumentation zu Popupinhalten.
- Ein Windows 10-UWP-App-Projekt
Schritt 1: Installieren des NuGet-Pakets
Installieren Sie das NuGet-Paket "Microsoft.Toolkit.Uwp.Notifications". Unser Codebeispiel verwendet dieses Paket. Am Ende des Artikels stellen wir die "einfachen" Codeausschnitte bereit, die keine NuGet-Pakete verwenden. Mit diesem Paket können Sie Popupbenachrichtigungen erstellen, ohne XML zu verwenden.
Schritt 2: Hinzufügen von Namespacedeklarationen
using Microsoft.Toolkit.Uwp.Notifications; // Notifications library
Schritt 3: Planen der Benachrichtigung
Wir verwenden eine einfache textbasierte Benachrichtigung, die einen Schüler an die hausaufgaben erinnert, die sie heute fällig haben. Erstellen Sie die Benachrichtigung, und planen Sie sie!
// Construct the content and schedule the toast!
new ToastContentBuilder()
.AddArgument("action", "viewItemsDueToday")
.AddText("ASTR 170B1")
.AddText("You have 3 items due today!");
.Schedule(DateTime.Now.AddSeconds(5));
Bereitstellen eines Primärschlüssels für Das Popup
Wenn Sie die geplante Benachrichtigung programmgesteuert abbrechen, entfernen oder ersetzen möchten, müssen Sie die Tag-Eigenschaft (und optional die Group-Eigenschaft) verwenden, um einen Primärschlüssel für Ihre Benachrichtigung bereitzustellen. Anschließend können Sie diesen Primärschlüssel in Zukunft verwenden, um die Benachrichtigung abzubrechen, zu entfernen oder zu ersetzen.
Weitere Informationen zum Ersetzen/Entfernen bereits übermittelter Popupbenachrichtigungen finden Sie in der Schnellstartanleitung: Verwalten von Popupbenachrichtigungen im Info-Center (XAML).
Tag und Gruppe kombiniert fungieren als zusammengesetzter Primärschlüssel. "Gruppe" ist der allgemeinere Bezeichner, bei dem Sie Gruppen wie "wallPosts", "messages", "friendRequests" usw. zuweisen können. Anschließend sollte "Tag" die Benachrichtigung selbst innerhalb der Gruppe eindeutig identifizieren. Mithilfe einer generischen Gruppe können Sie dann alle Benachrichtigungen aus dieser Gruppe mithilfe der RemoveGroup-API entfernen.
// Construct the content and schedule the toast!
new ToastContentBuilder()
.AddArgument("action", "viewItemsDueToday")
.AddText("ASTR 170B1")
.AddText("You have 3 items due today!");
.Schedule(DateTime.Now.AddSeconds(5), toast =>
{
toast.Tag = "18365";
toast.Group = "ASTR 170B1";
});
Abbrechen geplanter Benachrichtigungen
Um eine geplante Benachrichtigung abzubrechen, müssen Sie zuerst die Liste aller geplanten Benachrichtigungen abrufen.
Suchen Sie dann ihr geplantes Popup, das dem zuvor angegebenen Tag entspricht (und optional gruppieren), und rufen Sie RemoveFromSchedule() auf.
// Create the toast notifier
ToastNotifierCompat notifier = ToastNotificationManagerCompat.CreateToastNotifier();
// Get the list of scheduled toasts that haven't appeared yet
IReadOnlyList<ScheduledToastNotification> scheduledToasts = notifier.GetScheduledToastNotifications();
// Find our scheduled toast we want to cancel
var toRemove = scheduledToasts.FirstOrDefault(i => i.Tag == "18365" && i.Group == "ASTR 170B1");
if (toRemove != null)
{
// And remove it from the schedule
notifier.RemoveFromSchedule(toRemove);
}
Wichtig
Eine entpackte Win32-App (keine Paketidentität zur Laufzeit) muss die ToastNotificationManagerCompat-Klasse verwenden, wie oben dargestellt. Wenn Sie ToastNotificationManager selbst verwenden, erhalten Sie eine Ausnahme, die nicht gefunden wurde. Alle Arten von Apps können die Compat-Klasse verwenden und funktionieren ordnungsgemäß.
Aktivierungsbehandlung
Weitere Informationen zum Behandeln der Aktivierung finden Sie unter " Senden eines lokalen Popupdokuments ". Die Aktivierung einer geplanten Popupbenachrichtigung wird genauso behandelt wie die Aktivierung einer lokalen Popupbenachrichtigung.
Hinzufügen von Aktionen, Eingaben und mehr
Weitere Informationen zu erweiterten Themen wie Aktionen und Eingaben finden Sie unter " Senden einer lokalen Popupdokumentation ". Aktionen und Eingaben funktionieren in lokalen Popups genauso wie bei geplanten Popups.
Ressourcen
Windows developer