앱 알림 내용

앱 알림은 텍스트, 이미지 및 단추/입력이 있는 유연한 알림입니다. 이 문서에서는 앱 알림에서 사용할 수 있는 UI 요소에 대해 설명하고 앱 알림에 대한 XML 형식을 생성하기 위한 코드 예제를 제공합니다.

참고 항목

'알림 메시지'라는 용어가 '앱 알림'으로 대체됩니다. 이러한 용어는 모두 Windows의 동일한 기능을 참조하지만 시간이 지남에 따라 설명서에서 '알림 메시지'의 사용을 단계적으로 중단합니다.

시작하기

앱 알림은 앱 알림 스키마에 의해 정의된 XML 페이로드로 정의됩니다. 현재 앱 알림에 대한 XML 페이로드를 생성하는 세 가지 방법이 있습니다. 이 문서의 코드 예시에서는 다음 세 가지 방법을 모두 설명합니다.

  • Microsoft.Windows.AppNotifications.Builder API - Windows 앱 SDK 1.2에서 도입된 이 네임스페이스는 XML 형식의 세부 사항에 대해 걱정할 필요 없이 프로그래밍 방식으로 알림에 대한 XML 페이로드를 쉽게 빌드할 수 있는 API를 제공합니다. 이러한 API를 사용하는 코드 예시는 'Windows 앱 SDK'라는 레이블이 지정된 탭에 있습니다.
  • Microsoft.Toolkit.Uwp.Notifications 작성기 구문 - 이러한 API는 UWP 커뮤니티 도구 키트의 일부이며 UWP 앱에 대한 지원을 제공합니다. 이러한 API는 Windows App SDK 앱에도 사용할 수 있으며 계속 지원되지만 새 구현에서는Microsoft.Windows.AppNotifications.Builder API를 사용하는 것이 좋습니다. 커뮤니티 도구 키트 API를 사용하려면 UWP 커뮤니티 도구 키트 알림 넛지 패키지를 프로젝트에 추가합니다. 이 문서에서 제공하는 C# 샘플은 NuGet 패키지 버전 7.0.0을 사용합니다. 이러한 API를 사용하는 코드 예시는 'Windows 커뮤니티 도구 키트'라는 레이블이 지정된 탭에 있습니다.
  • 원시 XML - 원하는 경우 필요한 형식으로 XML 문자열을 생성하는 사용자 지정 코드를 만들 수 있습니다. 원시 XML 예시는 'XML'이라는 레이블이 지정된 탭에 있습니다.

알림 시각화 도우미를 설치합니다. 이 무료 Windows 앱은 Visual Studio의 XAML 편집기/설계 보기와 비슷하게 알림을 편집할 때 시각적 미리 보기를 곧바로 제공하여 대화형 앱 알림을 설계하는 데 도움이 됩니다. 자세한 내용은 알림 비주얼라이저를 참조하거나 Microsoft Store에서 알림 비주얼라이저를 다운로드하세요.

이 문서에서는 앱 알림 콘텐츠 생성에 대해서만 다룹니다. XML 페이로드를 생성한 후 알림을 보내는 방법에 대한 자세한 내용은 로컬 앱 알림 보내기를 참조하세요.

앱 알림 구조

앱 알림 XML 페이로드의 중요한 상위 수준 구성 요소는 다음과 같습니다.

  • toast: 이 요소의 launch 특성은 사용자가 알림을 클릭할 때 앱으로 다시 전달될 인수를 정의하여 알림이 표시한 올바른 콘텐츠로 딥 링크할 수 있도록 합니다. 자세한 내용은 로컬 앱 알림 보내기를 참조하세요.
  • visual: 이 요소는 텍스트와 이미지가 포함된 일반 바인딩을 포함하여 알림의 시각적 부분을 나타냅니다.
  • actions: 이 요소는 입력 및 작업을 포함하여 알림의 대화형 부분을 나타냅니다.
  • audio: 이 요소는 알림이 사용자에게 표시될 때 재생되는 오디오를 지정합니다.
var builder = new AppNotificationBuilder()
    .AddArgument("conversationId", "9813")

    .AddText("Some text")

    .AddButton(new AppNotificationButton("Archive")
        .AddArgument("action", "archive"))

    .SetAudioUri(new Uri("ms-appx:///Sound.mp3"));

다음은 앱 알림 내용의 시각적 표현입니다.

앱 아이콘 및 앱 이름 알림 시각화 도우미를 보여 주는 맨 위에 특성 영역에 대한 레이블이 있는 앱 알림의 스크린샷입니다. 알림 가운데 부분에는 텍스트 세 줄이 있는데 시각적 영역으로 레이블이 지정됩니다. 알림 아래쪽 섹션은 작업 영역으로 레이블이 지정되고 수락 및 거절이라는 두 개의 버튼이 있습니다.

특성 영역

특성 영역은 앱 알림의 맨 위에 있습니다. Windows 11부터 앱의 이름과 아이콘이 이 영역에 표시됩니다. 또한 특성 영역에는 사용자가 알림을 빠르게 해제할 수 있는 닫기 버튼과 사용자가 앱에 대한 알림을 신속하게 사용하지 않도록 설정하거나 앱 알림의 Windows 설정 페이지로 이동하도록 허용하는 더보기 메뉴가 포함되어 있습니다. 특성 영역은 셸에 의해 구성되며, 앱이 특성 영역 상황에 맞는 메뉴에 항목을 추가할 수 있지만 알림 XML 페이로드에서는 재정의할 수 없습니다. 자세한 내용은 컨텍스트 메뉴 동작을 참조하세요.

시각적 개체

각 앱 알림은 일반 알림 바인딩을 제공해야 하고 텍스트와 이미지를 포함할 수 있는 시각적 요소를 지정해야 합니다. 이러한 요소는 데스크톱, 전화, 태블릿 및 Xbox를 포함한 다양한 Windows 디바이스에서 렌더링됩니다.

시각적 섹션과 해당 자식 요소에서 지원되는 모든 특성은 앱 알림 스키마를 참조하세요.

텍스트 요소

각 앱 알림에는 하나 이상의 text 요소가 있어야 하며, 모두 AdaptiveText 형식인 두 개의 추가 텍스트 요소를 포함할 수 있습니다.

세 줄짜리 텍스트가 있는 앱 알림의 스크린샷입니다. 텍스트 위쪽 줄은 굵게 표시됩니다.

Windows 10주년 업데이트 이후로 텍스트에 HintMaxLines 속성을 사용하여 표시되는 텍스트 줄 수를 제어할 수 있습니다. 기본 및 최대값은 제목에서 최대 텍스트 2줄이고 추가 설명 요소 2개(두 번째와 세 번째 AdaptiveText)에서 최대 4줄(결합됨)입니다.

var builder = new AppNotificationBuilder()
    .AddArgument("conversationId", 9813)
    .AddText("Adaptive Tiles Meeting", new AppNotificationTextProperties().SetMaxLines(1))
    .AddText("Conf Room 2001 / Building 135")
    .AddText("10:00 AM - 10:30 AM");

인라인 이미지

기본적으로 이미지는 텍스트 요소 뒤의 인라인으로 표시되어 시각적 영역의 전체 너비를 채웁니다.

시각적 영역의 전체 너비를 채우는 기본 이미지 배치를 인라인으로 보여주는 앱 알림 스크린샷입니다.

var builder = new AppNotificationBuilder()
    .AddText("Featured image of the day.")
    .SetInlineImage(new Uri("ms-appx:///Images/InlineImage.png"));

AppNotificationManager.Default.Show(builder.BuildNotification());

앱 로고 재정의

배치 값을 'appLogoOverride'로 지정하면 시각적 영역 왼쪽의 사각형에 이미지가 표시됩니다. 이 속성의 이름은 이미지가 기본 앱 로고 이미지를 대체하는 이전 버전의 Windows의 동작을 반영합니다. Windows 11에서는 앱 로고가 특성 영역에 표시되므로 appLogoOverride 이미지 배치에 의해 재정의되지 않습니다.

이미지 치수는 100% 배율에서 48x48픽셀입니다. 일반적으로 각 배율에 대한 각 아이콘 자산(100%, 125%, 150%, 200%, 400%)의 버전을 제공하는 것이 좋습니다.

앱 로고가 알림의 시각적 영역 왼쪽에 있는 사각형에 이미지 배치를 재정의하는 것을 보여 주는 앱 알림 스크린샷입니다.

var builder = new AppNotificationBuilder()
    .AddText("Featured image of the day.")
    .SetAppLogoOverride(new Uri("ms-appx:///Images/AppLogo.png"));

힌트 자르기

Microsoft 스타일 지침에서는 앱과 셸에서 사람들의 일관된 표현을 제공할 수 있도록 원형 이미지로 프로필 사진을 나타내는 것이 좋습니다. 원형 자르기를 사용하여 이미지를 렌더링하려면 HintCrop 속성을 Circle로 설정합니다.

앱 로고가 알림의 시각적 영역 왼쪽에 잘린 원 안에 있는 잘 이미지 배치를 재정의하는 것을 보여 주는 앱 알림 스크린샷입니다.

var builder = new AppNotificationBuilder()
    .AddText("Matt sent you a friend request")
    .AddText("Hey, wanna dress up as wizards and ride around on hoverboards?")
    .SetAppLogoOverride(new Uri("ms-appx:///Images/Profile.png"), AppNotificationImageCrop.Circle);

영웅 이미지

기념일 업데이트의 새로운 기능: 앱 알림은 알림 배너 내와 알림 센터 내에서 눈에 띄게 표시되는 추천 ToastGenericHeroImage인 히어로 이미지를 표시할 수 있습니다. 이미지 치수는 100% 배율에서 364x180픽셀입니다.

특성 영역 위의 Hero 이미지 배치를 보여 주는 앱 알림 스크린샷입니다.

var builder = new AppNotificationBuilder()
    .AddText("Marry Anne")
    .AddText("Check out where we camped last night!")
    .SetHeroImage(new Uri("ms-appx:///Images/HeroImage.png"));

이미지 크기 제한

알림 메시지에서 사용하는 이미지는 다음 위치에서 소싱될 수 있습니다.

  • http://
  • ms-appx:///
  • ms-appdata:///

Http 및 https 원격 웹 이미지의 경우 각 개별 이미지의 파일 크기 제한이 있습니다. Fall Creators Update(16299)에서 일반 연결의 경우 이 제한을 3MB로 높이고 데이터 통신 연결의 경우 1MB로 높였습니다. 그 전에 이미지는 항상 200KB로 제한되었습니다.

일반 연결 데이터 통신 연결 Fall Creators Update 이전
3MB 1MB 200KB

이미지가 파일 크기를 초과하거나 다운로드하지 못하는 경우 이 이미지는 삭제되고 나머지 알림이 표시됩니다.

특성 텍스트

1주년 업데이트의 새로운 기능: 콘텐츠의 소스를 참조해야 하는 경우 특성 텍스트를 사용할 수 있습니다. 이 텍스트는 항상 모든 텍스트 요소 아래에 표시되지만 인라인 이미지 위에 표시됩니다. 텍스트는 표준 텍스트 요소보다 약간 작은 크기를 사용하여 일반 텍스트 요소와 구별할 수 있습니다.

특성 텍스트를 지원하지 않는 더 오래된 버전의 Windows에서는 텍스트가 다른 텍스트 요소로 표시됩니다. 단, 최대 3개의 텍스트 요소가 아직 없어야 합니다.

알림의 시각적 영역에 있는 다른 텍스트 줄 아래에

var builder = new AppNotificationBuilder()
    .AddText("Marry Anne")
    .AddText("Check out where we camped last night!")
    .SetAttributionText("via SMS");
    .SetHeroImage(new Uri("ms-appx:///Images/HeroImage.png"));

사용자 지정 타임스탬프

크리에이터 업데이트의 새로운 기능: 이제 시스템에서 제공하는 타임스탬프를 메시지/정보/콘텐츠 생성 시기를 정확하게 나타내는 타임스탬프로 재정의할 수 있습니다. 이 타임스탬프는 알림 센터 내에서 볼 수 있습니다.

사용자 지정 타임스탬프가 있는 알림 센터의 알림 스크린샷

사용자 지정 타임스탬프 사용에 대한 자세한 내용은 알림에 대한 사용자 지정 타임스탬프를 참조하세요.

var builder = new AppNotificationBuilder()
    .AddText("Matt sent you a friend request")
    .AddText("Hey, wanna dress up as wizards and ride around on hoverboards?")
    .SetTimeStamp(new DateTime(2017, 04, 15, 19, 45, 00, DateTimeKind.Utc));

진행률 표시줄

Creators Update의 새로운 기능: 앱 알림에 진행률 표시줄을 제공하여 사용자에게 다운로드와 같은 작업 진행 상황을 지속적으로 알릴 수 있습니다.

진행률 표시줄을 보여 주는 알림 메시지의 스크린샷입니다.

진행률 표시줄 사용에 대해 자세히 알아보려면 알림 진행률 표시줄을 참조하세요.

헤더

Creators Update의 새로운 기능: 알림 센터 내의 헤더 아래에 알림을 그룹화할 수 있습니다. 예를 들어, 헤더에 따라 그룹 채팅 메시지를 그룹화하거나 헤더에 따라 일반적인 테마의 알림을 그룹화할 수 있습니다.

헤더 사용에 대한 자세한 내용은 알림 헤더를 참조하세요.

적응형 콘텐츠

1주년 업데이트의 새로운 기능: 위에 지정된 콘텐츠 외에도 알림 확장 시 표시되는 추가 적응형 콘텐츠를 표시할 수도 있습니다.

적응형을 사용하여 이 추가 콘텐츠를 지정합니다. 이에 대한 자세한 내용은 적응형 타일 설명서를 참조하세요.

적응형 콘텐츠는 AdaptiveGroup 내에 포함되어야 합니다. 그렇지 않으면 적응형으로 렌더링되지 않습니다.

열 및 텍스트 요소

다음은 열과 일부 고급 적응형 텍스트의 사용 예입니다. 텍스트 요소는 AdaptiveGroup 내에 있으므로 다양한 적응형 스타일 지정 속성을 모두 지원합니다.

알림의 시각적 영역 왼쪽과 오른쪽에 정렬된 텍스트 요소 그룹을 보여 주는 알림 메시지의 스크린샷입니다.

// The Microsoft.Windows.AppNotifications.Builder syntax does not currently support adaptive text elements.

버튼

버튼을 사용하면 대화형 알림을 생성하여 사용자가 현재 워크플로우를 중단하지 않고도 앱 알림에 대해 빠른 조치를 취할 수 있습니다. 예를 들어, 사용자가 알림 내에서 직접 메시지에 회신하거나 전자 메일 앱을 열지 않고도 전자 메일을 삭제할 수 있습니다. 앱단추는 알림의 확장된 부분에 표시됩니다.

완벽한 단추 구현에 대한 자세한 내용은 로컬 알림 보내기를 참조하세요.

버튼은 다음과 같은 방법으로 앱을 활성화할 수 있습니다.

  • 앱은 포그라운드에서 활성화되며 특정 페이지/컨텍스트로 이동하는 데 사용할 수 있는 인수가 있습니다.
  • 다른 앱은 프로토콜 시작을 통해 활성화됩니다.
  • 백그라운드 활성화는 UWP 앱에 대해 명시적으로 지원됩니다. Windows App SDK 앱의 경우 앱은 항상 포그라운드에서 시작됩니다. 앱은 AppInstance.GetActivatedEventArgs를 호출하여 알림에 의해 활성화가 시작되었는지 감지하고 전달된 인수에서 포그라운드 앱을 완전히 시작할지 아니면 알림을 처리하고 종료할지 결정할 수 있습니다.
  • 알림 다시 알림 또는 해제와 같은 시스템 작업은 UWP 앱과 Windows App SDK 모두 지원됩니다. AppNotificationBuilder API는 이 시나리오를 지원하지 않지만 Windows App SDK 앱은 Microsoft.Windows.AppNotifications.Builder API 또는 원시 XML을 사용하여 이 시나리오를 구현할 수 있습니다.

참고 항목

나중에 다룰 바로 가기 메뉴 항목을 포함하여 단추는 5개까지만 가능합니다.

텍스트 줄이 작업 요소로 정의된 버튼 두 개가 있는 행을 보여 주는 알림 메시지 스크린샷입니다.

new ToastContentBuilder()
    var builder = new AppNotificationBuilder()
        .AddText("New product in stock!")
        .AddButton(new AppNotificationButton("See more details")
            .AddArgument("action", "viewDetails"))
            .AddArgument("contentId", "351")
        .AddButton(new AppNotificationButton("Remind me later")
            .AddArgument("action", "remindLater"))
            .AddArgument("contentId", "351");

아이콘이 있는 단추

단추에 아이콘을 추가할 수 있습니다. 이 아이콘은 100% 배율에 흰색 투명 16 x 16 픽셀 이미지이며 이미지 자체에 안쪽 여백이 없습니다. 알림 메시지에서 아이콘을 제공할 경우 단추 스타일을 아이콘 버튼으로 변형하기 때문에 알림에서 단추 전체에 아이콘을 제공해야 합니다.

참고 항목

접근성을 위해서는 대비되는 흰색 버전의 아이콘(흰색 배경에 검정색 아이콘)을 포함해야만 사용자가 고대비 흰색 모드를 켤 때 아이콘이 잘 보입니다. 자세한 정보는 언어, 배율, 고대비에 대한 타일 및 알림 메시지 지원을 참조하세요.

아이콘이 있는 버튼을 사용하는 앱 알림 스크린샷입니다.

new ToastContentBuilder()
    var builder = new AppNotificationBuilder()
        .AddText("Return books to the library.")
        .AddButton(new AppNotificationButton("Accept")
            .AddArgument("action", "accept")
            .SetIcon(new Uri("ms-appx:///Images/Accept.png")))
        .AddButton(new AppNotificationButton("Snooze")
            .AddArgument("action", "snooze")
            .SetIcon(new Uri("ms-appx:///Images/Snooze.png")))
        .AddButton(new AppNotificationButton("Dismiss")
            .AddArgument("action", "dismiss")
            .SetIcon(new Uri("ms-appx:///Images/Dismiss.png")));

Windows 11 업데이트의 새로운 기능: XML의 HintToolTip 속성을 사용하여 아이콘에 도구 설명을 추가할 수 있습니다. 이는 버튼에 아이콘이 있지만 콘텐츠가 없는 경우에 이상적입니다. 따라서 Windows Narrator가 읽을 수 있는 텍스트를 전달할 수 있습니다. 그러나 콘텐츠가 있는 경우 Narrator는 도구 설명에 전달되는 내용에 관계없이 콘텐츠를 읽습니다.

var button = new AppNotificationButton("Reply")
    .AddArgument("action", "reply");

if (AppNotificationButton.IsToolTipSupported())
{
    button.ToolTip = "Click to reply.";
}

var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .AddButton(button); 

색이 있는 버튼

Windows 11 업데이트의 새로운 기능: 아래와 같이 알림 XML 요소에 useButtonStyle 특성을 추가하고 hint-buttonStyle 특성을 작업 XML 요소에 추가하여 버튼에 빨간색 또는 녹색을 추가할 수 있습니다.

버튼 세 개가 있는 알림 스크린샷, 왼쪽 버튼 두 개는 녹색으로 화상 통화를 시작하거나 오디오 통화를 시작하기 위한 아이콘이 있습니다. 세 번째 버튼은 빨간색이며 호출 거부용 아이콘이 있습니다.

var builder = new AppNotificationBuilder()
    .SetScenario(AppNotificationScenario.IncomingCall)
    .AddText("Andrew Bares", new AppNotificationTextProperties()
        .SetIncomingCallAlignment())
      .AddText("Incoming Call - Mobile", new AppNotificationTextProperties()
        .SetIncomingCallAlignment())
      .SetInlineImage(new Uri("ms-appx:///Images/Profile.png"),
        AppNotificationImageCrop.Circle)
    .AddButton(new AppNotificationButton()
        .SetToolTip("Answer Video Call")
        .SetButtonStyle(AppNotificationButtonStyle.Success)
        .SetIcon(new Uri("ms-appx:///Images/Video.png"))
        .AddArgument("videoId", "123"))
    .AddButton(new AppNotificationButton()
        .SetToolTip("Answer Phone Call")
        .SetButtonStyle(AppNotificationButtonStyle.Success)
        .SetIcon(new Uri("ms-appx:///Images/Call.png"))
        .AddArgument("callId", "123"))
    .AddButton(new AppNotificationButton()
        .SetToolTip("Hang Up")
        .SetButtonStyle(AppNotificationButtonStyle.Critical)
        .SetIcon(new Uri("ms-appx:///Images/HangUp.png"))
        .AddArgument("hangUpId", "123"));

바로 가기 메뉴 작업

기념일 업데이트의 새로운 기능: 사용자가 알림 메시지를 마우스 오른쪽 버튼으로 클릭하거나 상황에 맞는 메뉴 아이콘을 선택할 때 표시되는 기존 상황에 맞는 메뉴에 상황에 맞는 메뉴 작업을 추가할 수 있습니다.

참고 항목

이전 디바이스에서는 이러한 추가 상황에 맞는 메뉴 작업이 알림에 일반 버튼으로 표시됩니다.

추가하는 추가 상황에 맞는 메뉴 작업(예: '1시간 동안 그룹 채팅 음소거')은 두 개의 기본 시스템 항목 위에 나타납니다.

컨텍스트 메뉴가 있는 알림

var builder = new AppNotificationBuilder()
    .AddText("Camping this weekend?")
    .SetAppLogoOverride(new Uri("ms-appx:///images/Reply.png"), AppNotificationImageCrop.Circle)
    .AddButton(new AppNotificationButton("Mute group chat for 1 hour")
        .AddArgument("action", "mute")
        .SetContextMenuPlacement());

참고 항목

추가 바로 가기 메뉴 항목은 알림에서 총 5개 버튼 한도에 기여합니다.

추가 바로 가기 메뉴 항목의 활성화는 알림 단추와 동일하게 처리됩니다.

입력

입력은 앱 알림의 Actions 영역 내에서 지정되며, 이는 알림이 확장될 때만 표시된다는 것을 의미합니다.

빠른 회신 텍스트 상자

빠른 답장 텍스트 상자(예: 메시징 앱)를 활성화하려면 텍스트 입력과 버튼을 추가하고 텍스트 입력 필드의 ID를 참조하여 버튼이 입력 필드 옆에 표시되도록 합니다. 버튼의 선택적 아이콘(제공된 경우)은 안쪽 여백이 없는 32x32픽셀 이미지여야 하며, 흰색 픽셀은 투명으로 설정되고, 배율은 100%여야 합니다.

프로필 사진과 몇몇 텍스트 줄이 있는 알림 메시지 스크린샷입니다. 알림에 직접 입력하기 위한 텍스트 상자가 회신을 보내는 버튼과 함께 있습니다.

var builder = new AppNotificationBuilder()
    .AddTextBox("textBox", "Type a reply", "Reply")
    .AddButton(AppNotificationButton("Send")
        .AddArguments("action", "Send")
        .SetInputId("textBox"))
    .BuildNotification();

단추 모음이 있는 입력

입력 아래에 일반 단추가 표시된 입력이 1개 이상 있을 수 있습니다.

// The Microsoft.Windows.AppNotifications.Builder syntax does not currently support quick reply text boxes.

선택 입력

텍스트 상자 외에 선택 메뉴를 사용할 수도 있습니다.

텍스트 줄과 선택한 항목으로

var builder = new AppNotificationBuilder()
    .AddText("4th coffee?")
    .AddText("When do you plan to come in tomorrow?")
    .AddComboBox(new AppNotificationComboBox("time")
        .SetTitle("Select an item:")
        .AddItem("breakfast", "Breakfast")
        .AddItem("lunch", "Lunch")
        .AddItem("dinner", "Dinner")
        .SetSelectedItem("lunch"))
    .AddButton(new AppNotificationButton("Reply")
        .AddArgument("action", "reply")
        .AddArgument("threadId", "9218")
        .SetContextMenuPlacement())
    .AddButton(new AppNotificationButton("Call restaurant")
        .AddArgument("action", "videocall")
        .AddArgument("threadId", "9218")
        .SetContextMenuPlacement());

다시 알림/해제

선택 메뉴와 2개의 단추를 사용하여 시스템 다시 알림 및 해제 작업을 활용하는 미리 알림을 만들 수 있습니다. 미리 알림처럼 작동하도록 알림에 대해 시나리오를 '미리 알림'으로 설정합니다.

모임의 시간과 위치를 설명하는 텍스트 줄이 있는 앱 알림 스크린샷입니다. 선택 상자에

알림 단추에 SelectionBoxId 속성을 사용하여 선택 메뉴 입력에 다시 알림 단추를 연결합니다.

Microsoft.Windows.AppNotifications.Builder 구문은 현재 시스템 활성화를 지원하지 않습니다. 그러나 이 시나리오는 Windows App SDK 앱에서 지원되며 Microsoft.Toolkit.Uwp.Notifications API 또는 원시 XML을 사용하여 이 시나리오에 대한 알림을 빌드할 수 있습니다.

// The Microsoft.Windows.AppNotifications.Builder syntax does not currently support system activation. 
// But this scenario is supported for Windows App SDK apps, and you can build notifications for this 
// scenario using the `Microsoft.Toolkit.Uwp.Notifications` APIs or raw XML.

시스템 다시 알림 및 해제 작업을 사용하려면 다음을 수행합니다.

  • ToastButtonSnooze 또는 ToastButtonDismiss 지정
  • 필요에 따라 사용자 지정 콘텐츠 문자열 지정:
  • 문자열을 제공하지 않는 경우 "다시 알림" 및 "해제"에 대해 지역화된 문자열을 자동으로 사용합니다.
  • 필요에 따라 SelectionBoxId를 지정합니다.
  • 사용자가 다시 알림 간격을 선택하지 않고 시스템 정의 시간 간격(OS 간에 일관된 시간 간격)에 대해 알림을 한 번만 다시 알림을 보내도록 하려면 <입력>을 전혀 생성하지 마십시오.
  • 다시 알림 간격 선택을 제공하려는 경우: - 스누즈 작업에서 SelectionBoxId 지정 - 입력 ID를 스누즈 작업의 SelectionBoxId 일치 - ToastSelectionBoxItem의 값을 분 단위로 다시 알림 간격을 나타내는 nonNegativeInteger로 지정

오디오

사용자 지정 오디오는 모바일에서 항상 지원되었으며 데스크톱 버전 1511(빌드 10586) 이상에서 지원됩니다. 사용자 지정 오디오는 다음 경로에서 참조할 수 있습니다.

  • ms-appx:///
  • ms-appdata:///
var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .SetAudioUri(new Uri("ms-appx:///Audio/NotificationSound.mp3"));

또는 두 플랫폼 모두에서 지원되는 ms-winsoundevents 목록에서 선택하는 것도 가능합니다.

var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .SetAudioEvent(AppNotificationSoundEvent.Alarm, AppNotificationAudioLooping.Loop);

앱 알림의 오디오에 대한 자세한 내용은 오디오 스키마 페이지를 참조하세요. 사용자 지정 오디오를 사용하는 앱 알림을 보내는 방법을 알아보려면 알림의 사용자 지정 오디오를 참조하세요.

시나리오

중요한 알림, 알람, 미리 알림 및 수신 전화 알림을 만들려면 Scenario 값이 할당된 일반 앱 알림을 사용하기만 하면 됩니다. 이 시나리오는 일관되고 통합된 사용자 환경을 만들기 위해 몇 가지 동작을 조정합니다. 다음과 같은 4가지 Scenario 값이 있습니다.

  • 미리 알림
  • 경보
  • IncomingCall
  • 긴급

미리 알림

미리 알림 시나리오에서 알림은 사용자가 해제하거나 조치를 취할 때까지 화면에 유지됩니다. Windows Mobile에서는 앱 알림도 미리 확장된 상태로 표시됩니다. 미리 알림 소리가 재생됩니다. 앱 알림에 하나 이상의 버튼을 제공해야 합니다. 그렇지 않으면 알림이 일반 알림으로 처리됩니다.

var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .SetScenario(AppNotificationScenario.Reminder);

경보

알람은 기본 알람 소리와 함께 오디오를 추가로 반복한다는 점을 제외하고는 미리 알림과 동일하게 작동합니다. 앱 알림에 하나 이상의 버튼을 제공해야 합니다. 그렇지 않으면 알림이 일반 알림으로 처리됩니다.

var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .SetScenario(AppNotificationScenario.Alarm)
    .AddButton(new AppNotificationButton("Dismiss")
        .AddArgument("action", "dismiss"));

수신 전화

수신 전화 알림은 특수 통화 형식으로 미리 확장되어 표시되며 해제될 때까지 사용자 화면에 남아 있습니다. 벨소리 오디오는 기본적으로 반복됩니다. Windows Mobile 디바이스에는 전체 화면이 표시됩니다.

수신 전화 알림입니다.

var builder = new AppNotificationBuilder()
    .SetScenario(AppNotificationScenario.IncomingCall)
    .AddText("Andrew Bares", new AppNotificationTextProperties()
        .SetIncomingCallAlignment())
    .AddText("incoming call - mobile", new AppNotificationTextProperties()
        .SetIncomingCallAlignment())
      .SetInlineImage(new Uri("ms-appx:///images/profile.png"),
        AppNotificationImageCrop.Circle)
    .AddButton(new AppNotificationButton("Text reply")
        .SetToolTip("Text reply")
        .SetIcon(new Uri("ms-appx:///images/reply.png"))
        .AddArgument("textId", "123"))
    .AddButton(new AppNotificationButton("Reminder")
        .SetToolTip("Reminder")
        .SetIcon(new Uri("ms-appx:///images/reminder.png"))
        .AddArgument("reminderId", "123"))
    .AddButton(new AppNotificationButton("Ignore")
        .SetToolTip("Ignore")
        .SetIcon(new Uri("ms-appx:///images/ignore.png"))
        .AddArgument("ignoreId", "123"))
    .AddButton(new AppNotificationButton("Answer")
        .SetToolTip("Answer")
        .SetIcon(new Uri("ms-appx:///images/answer.png"))
        .AddArgument("answerId", "123"));

중요한 알림

Important

필요: 중요한 알림을 사용하려면 Windows Insider Preview 빌드 22546 이상을 실행해야 합니다.

중요한 알림을 통해 사용자는 포커스 지원(방해 금지)을 돌파할 수 있는 우선 순위가 높은 앱 알림(긴급/중요)을 보낼 수 있는 자사 및 타사 앱을 보다 세밀하게 제어할 수 있습니다. 알림 설정에서 수정할 수 있습니다.

앱 이름 옆에 특성 영역에 느낌표가 있는 긴급 앱 알림 스크린샷입니다. 이 이미지에서 또한 사용자가 앱에서 긴급 알림을 허용하거나 허용하지 않도록 하는 버튼을 제공하는 시스템 시작 앱 알림을 보여 줍니다.

var builder = new AppNotificationBuilder()
    .AddText("Adaptive Tiles Meeting", 
        new AppNotificationTextProperties()
            .SetMaxLines(1))
    .AddText("Conf Room 2001 / Building 135")
    .AddText("10:00 AM - 10:30 AM");

if (AppNotificationBuilder.IsUrgentScenarioSupported())
{
    builder.SetScenario(AppNotificationScenario.Urgent);
}

지역화 및 손쉬운 사용

타일 및 앱 알림은 표시 언어, 디스플레이 배율 인수, 고대비 및 기타 런타임 컨텍스트에 맞게 조정된 문자열 및 이미지를 로드할 수 있습니다. 자세한 내용은 언어, 배율, 고대비에 대한 타일 및 알림 메시지 지원을 참조하세요.

활성화 처리

앱 활성화(사용자가 알림 또는 알림의 버튼을 클릭)를 처리하는 방법을 알아보려면 로컬 알림 보내기를 참조하세요.