Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
app Zaplanowane powiadomienia umożliwiają zaplanować późniejsze wyświetlenie powiadomienia, bez względu na to, czy app jest wtedy uruchomione. Jest to przydatne w przypadku scenariuszy, takich jak wyświetlanie przypomnień lub innych zadań podrzędnych dla użytkownika, w których czas i zawartość powiadomienia są znane z wyprzedzeniem.
Należy pamiętać, że zaplanowane app powiadomienia mają okno dostarczenia wynoszące 5 minut. Jeśli komputer jest wyłączony w zaplanowanym czasie dostawy i pozostaje wyłączony przez dłużej niż 5 minut, powiadomienie zostanie "usunięte", ponieważ nie będzie już istotne dla użytkownika. Jeśli potrzebujesz gwarantowanego dostarczania powiadomień niezależnie od tego, jak długo komputer był wyłączony, zalecamy użycie zadania w tle z wyzwalaczem czasu, jak pokazano w tym przykładowym kodzie.
Note
Termin "toast powiadomienie" jest zastępowany terminem "app powiadomienie". Te dwa terminy odnoszą się do tej samej funkcji systemu Windows, ale z czasem wycofamy korzystanie z "toast powiadomienia" w dokumentacji.
Important
Aplikacje klasyczne (spakowane i rozpakowane) mają nieco inne kroki wysyłania powiadomień i obsługi aktywacji. Postępuj zgodnie z poniższymi instrukcjami, jednak zamień ToastNotificationManager na klasę DesktopNotificationManagerCompat z dokumentacji programów na komputer stacjonarny.
Ważne interfejsy API: Klasa ScheduledToastNotification
Prerequisites
Aby w pełni zrozumieć ten temat, pomocne będą następujące elementy...
- Praktyczna wiedza na temat terminów app i pojęć dotyczących powiadomień. Aby uzyskać więcej informacji, zobacz Toast oraz przegląd centrum akcji.
- Znajomość zawartości powiadomień systemu Windows 10 app . Aby uzyskać więcej informacji, zobacz App dokumentację zawartości powiadomień .
- Projekt UWP systemu Windows 10 app
Krok 1. Instalowanie pakietu NuGet
Zainstaluj pakiet NuGet Microsoft.Toolkit.Uwp.Notifications. Nasz przykładowy kod będzie używać tego pakietu. Na końcu artykułu udostępnimy zwykłe fragmenty kodu, które nie używają żadnych pakietów NuGet. Ten pakiet umożliwia tworzenie app powiadomień bez użycia kodu XML.
Krok 2. Dodawanie deklaracji przestrzeni nazw
using Microsoft.Toolkit.Uwp.Notifications; // Notifications library
Krok 3. Planowanie powiadomienia
Użyjemy prostego powiadomienia tekstowego przypominającego studentowi o pracy domowej, którą mają dzisiaj. Skonstruuj powiadomienie i zaplanuj je!
// 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));
Podaj klucz podstawowy dla powiadomienia
Jeśli chcesz programowo anulować, usunąć lub zamienić zaplanowane powiadomienie, musisz użyć właściwości Tag (i opcjonalnie właściwości Grupa), aby podać klucz podstawowy powiadomienia. Następnie możesz użyć tego klucza podstawowego w przyszłości, aby anulować, usunąć lub zastąpić powiadomienie.
Aby uzyskać więcej informacji na temat zastępowania/usuwania już dostarczonych app powiadomień, zobacz Szybki start: zarządzanie powiadomieniami toast w centrum akcji (XAML).
Tag i grupa łączone działają jako złożony klucz podstawowy. Grupa to bardziej ogólny identyfikator, w którym można przypisywać grupy, takie jak "wallPosts", "messages", "friendRequests" itp. Następnie tag powinien jednoznacznie zidentyfikować samo powiadomienie z grupy. Korzystając z grupy ogólnej, można usunąć wszystkie powiadomienia z tej grupy przy użyciu interfejsu API RemoveGroup.
// 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";
});
Anulowanie zaplanowanych powiadomień
Aby anulować zaplanowane powiadomienie, musisz najpierw pobrać listę wszystkich zaplanowanych powiadomień.
Następnie znajdź zaplanowane app powiadomienie pasujące do określonego wcześniej tagu (i opcjonalnie grupy), a następnie wywołaj metodę RemoveFromSchedule().
// 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);
}
Important
Nierozpakowany (bez tożsamości pakietu w czasie wykonywania) Win32 app musi używać klasy ToastNotificationManagerCompat, jak pokazano powyżej. Jeśli używasz się ToastNotificationManager, otrzymasz wyjątek ElementNotFound. Wszystkie typy aplikacji mogą używać klasy Compat i będą działać poprawnie.
Activation handling
Zobacz dokumentację wysyłania powiadomień lokalnychapp, aby dowiedzieć się więcej na temat obsługi aktywacji. Aktywacja zaplanowanego app powiadomienia jest obsługiwana tak samo jak aktywacja powiadomienia lokalnego app .
Dodawanie akcji, danych wejściowych i innych
Zobacz dokumentację wysyłania powiadomień lokalnychapp, aby dowiedzieć się więcej o zaawansowanych tematach, takich jak akcje i dane wejściowe. Akcje i dane wejściowe działają tak samo w powiadomieniach lokalnych app , jak w zaplanowanych app powiadomieniach.
Resources
Windows developer