예약된 app 알림은 app이(가) 그 시간에 실행 중인지와 상관없이, 나중에 알림을 표시하도록 예약할 수 있게 해 줍니다. 이는 알림의 시간 및 콘텐츠가 미리 알려진 사용자에 대한 미리 알림 또는 기타 후속 작업 표시와 같은 시나리오에 유용합니다.
예약된 app 알림의 배달 기간은 5분입니다. 예약된 배달 시간 동안 컴퓨터가 꺼져 있고 5분 이상 꺼져 있는 경우 알림은 더 이상 사용자와 관련이 없으므로 "삭제"됩니다. 컴퓨터가 꺼진 시간에 관계없이 알림 배달을 보장해야 하는 경우 이 코드 샘플에 설명된 대로 시간 트리거와 함께 백그라운드 작업을 사용하는 것이 좋습니다.
Note
"toast 알림"이라는 용어가 "app 알림"으로 대체되고 있습니다. 이러한 용어는 모두 Windows의 동일한 기능을 참조하지만 시간이 지남에 따라 설명서에서 "toast 알림"의 사용을 단계적으로 중단합니다.
Important
데스크톱 애플리케이션(패키지 및 패키지되지 않음)에는 알림을 보내고 활성화를 처리하는 단계가 약간 다릅니다. 아래 지침을 따르면서 ToastNotificationManager을 DesktopNotificationManagerCompat 설명서의 클래스로 바꿉니다.
중요 API: ScheduledToastNotification 클래스
Prerequisites
이 항목을 완전히 이해하려면 다음이 도움이 됩니다.
- app 알림 용어와 개념에 대한 실무 지식이 있습니다. 자세한 내용은 알림 센터 개요를 참조Toast하세요.
- Windows 10 app 알림 콘텐츠에 대해 잘 알고 있습니다. 자세한 내용은 알림 콘텐츠 설명서를 참조 App 하세요.
- Windows 10 UWP app 프로젝트
1단계: NuGet 패키지 설치
Microsoft.Toolkit.Uwp.Notifications NuGet 패키지을 설치합니다. 코드 샘플에서는 이 패키지를 사용합니다. 문서의 끝에서 NuGet 패키지를 사용하지 않는 "일반" 코드 조각을 제공합니다. 이 패키지를 사용하면 XML을 사용하지 않고 알림을 만들 app 수 있습니다.
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 속성(및 필요에 따라 그룹 속성)을 사용하여 알림의 기본 키를 제공해야 합니다. 그런 다음 나중에 이 기본 키를 사용하여 알림을 취소, 제거 또는 바꿀 수 있습니다.
이미 배달된 app 알림을 대체/제거하는 방법에 대한 자세한 내용은 빠른 시작: 알림 센터(XAML)에서 알림 관리toast를 참조하세요.
태그 및 그룹 결합은 복합 기본 키 역할을 합니다. 그룹은 "wallPosts", "messages", "friendRequests" 등과 같은 그룹을 할당할 수 있는 보다 일반적인 식별자입니다. 그런 다음 태그는 그룹 내에서 알림 자체를 고유하게 식별해야 합니다. 그런 다음 제네릭 그룹을 사용하여 RemoveGroup API를 사용하여 해당 그룹에서 모든 알림을 제거할 수 있습니다.
// 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
패키지되지 않은(런타임 시 패키지 ID 부족) Win32 app 는 위에서 설명한 대로 ToastNotificationManagerCompat 클래스를 사용해야 합니다. ToastNotificationManager 자체를 사용하는 경우, 요소를 찾을 수 없는 예외가 발생합니다. 모든 유형의 앱은 Compat 클래스를 사용할 수 있으며 올바르게 작동합니다.
Activation handling
활성화 처리에 대한 자세한 내용은 로컬 app 알림 문서 보내기 를 참조하세요. 예약된 app 알림의 활성화는 로컬 app 알림의 활성화와 동일하게 처리됩니다.
작업, 입력 등 추가
작업 및 입력과 같은 고급 항목에 대한 자세한 내용은 로컬 app 알림 문서 보내기 를 참조하세요. 작업 및 입력은 예약된 app 알림에서와 마찬가지로 로컬 app 알림에서 동일하게 작동합니다.
Resources
Windows developer