Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
app Запланированные уведомления позволяют запланировать появление уведомления в дальнейшем независимо от того, работает ли ваше приложение app в это время. Это полезно для таких сценариев, как отображение напоминаний или других последующих задач для пользователя, где время и содержимое уведомления известны заранее.
Обратите внимание, что запланированные app уведомления имеют окно доставки в течение 5 минут. Если компьютер отключен во время запланированной доставки и остается отключенным дольше 5 минут, уведомление будет удалено, так как оно больше не относится к пользователю. Если вам нужна гарантированная доставка уведомлений независимо от времени отключения компьютера, рекомендуется использовать фоновую задачу с триггером времени, как показано в этом примере кода.
Note
Термин "toast уведомление" заменяется на "app уведомление". Эти термины относятся к одной и той же функции Windows, но со временем мы будем поэтапно прекращать использование "toast уведомление" в документации.
Important
Классические приложения (как упакованные, так и распакованные) имеют немного разные шаги для отправки уведомлений и обработки активации. Следуйте нижеприведенным инструкциям, однако замените ToastNotificationManager на класс DesktopNotificationManagerCompat из документации приложений для настольных компьютеров .
Важные API: Класс ScheduledToastNotification
Prerequisites
Чтобы полностью понять эту тему, следующее будет полезно...
- Рабочая информация о терминах app и понятиях уведомлений. Для получения дополнительной информации см. разделToast и обзор центра уведомлений.
- Знакомство с содержимым уведомлений Windows 10 app . Дополнительные сведения см. в документации по содержимому уведомлений.App
- Проект UWP app для Windows 10
Шаг 1. Установка пакета NuGet
Установите пакет NuGet Microsoft.Toolkit.Uwp.Notifications. В нашем примере кода будет использоваться этот пакет. В конце статьи мы предоставим фрагменты "обычного" кода, которые не используют пакеты NuGet. Этот пакет позволяет создавать app уведомления без использования XML.
Шаг 2: Добавить объявления пространства имен
using Microsoft.Toolkit.Uwp.Notifications; // Notifications library
Шаг 3. Планирование уведомления
Мы будем использовать простое текстовое уведомление, напоминающее студенту о домашней работе, которую они должны сегодня. Создайте уведомление и запланируйте его!
// 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));
Укажите первичный ключ для уведомления
Если вы хотите программно отменить, удалить или заменить запланированное уведомление, необходимо использовать свойство Tag (и необязательно свойство Group), чтобы предоставить первичный ключ для уведомления. Затем этот первичный ключ можно использовать в будущем для отмены, удаления или замены уведомления.
Дополнительные сведения о замене и удалении уже доставленных app уведомлений см. в кратком руководстве по управлению toast уведомлениями в центре уведомлений (XAML).
Тег и группа объединяются в качестве составного первичного ключа. Группа — это более универсальный идентификатор, где можно назначать такие группы, как wallPosts, "messages", "friendRequests" и т. д. А затем тег должен однозначно идентифицировать уведомление из группы. С помощью универсальной группы можно удалить все уведомления из этой группы с помощью 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";
});
Отмена запланированных уведомлений
Чтобы отменить запланированное уведомление, сначала необходимо получить список всех запланированных уведомлений.
Затем найдите запланированное app уведомление, соответствующее тегу (и необязательно группе), указанному ранее, и вызовите 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
Непакованный (отсутствует удостоверение пакета во время выполнения) Win32 app должен использовать класс ToastNotificationManagerCompat, как показано выше. Если вы используете ToastNotificationManager, вы получите исключение 'элемент не найден'. Все типы приложений могут использовать класс Compat , и он будет работать правильно.
Activation handling
Дополнительные сведения об обработке активации см. в документации по отправке локальных app уведомлений . Активация запланированного app уведомления обрабатывается так же, как активация локального app уведомления.
Добавление действий, входных данных и многое другое
Дополнительные сведения о расширенных разделах, таких как действия и входные данные, см. в документации по отправке локальных app уведомлений . Действия и входные данные работают одинаково в локальных app уведомлениях, как и в запланированных app уведомлениях.
Resources
Windows developer