앱 알림 진행률 표시줄 및 데이터 바인딩

앱 알림 내에서 진행률 표시줄을 사용하면 다운로드, 비디오 렌더링, 연습 목표 등과 같은 장기 실행 작업의 상태를 사용자에게 전달할 수 있습니다.

앱 알림 내의 진행률 표시줄은 "확정되지 않음"(특정 값 없음, 애니메이션된 점은 작업이 발생했음을 나타낸다) 또는 "결정"(막대의 특정 백분율이 채워짐(예: 60%)일 수 있습니다.

아래 이미지는 레이블이 지정된 모든 해당 속성이 있는 확정된 진행률 표시줄을 보여줍니다.

앱 알림에 대한 자세한 내용은 앱 알림 개요를 참조하세요.

진행률 표시줄 속성 레이블이 지정된 앱 알림
재산 유형 필수 설명
Title 문자열 또는 바인더블스트링 false 선택적 제목 문자열을 가져오거나 설정합니다. 데이터 바인딩을 지원합니다.
더블 또는 AdaptiveProgressBarValue 또는 BindableProgressBarValue false 진행률 표시줄의 값을 가져오거나 설정합니다. 데이터 바인딩을 지원합니다. 기본값은 0입니다. 0.0에서 1.0 범위의 double이거나 AdaptiveProgressBarValue.Indeterminate 또는 new BindableProgressBarValue("myProgressValue").
ValueStringOverride 문자열 또는 바인더블스트링 false 기본 백분율 문자열 대신 표시할 선택적 문자열을 가져오거나 설정합니다. 이 정보가 제공되지 않으면 "70%"와 같은 내용이 표시됩니다.
상태 문자열 또는 바인더블스트링 true 왼쪽의 진행률 표시줄 아래에 표시되는 상태 문자열(필수)을 가져오거나 설정합니다. 이 문자열은 "다운로드 중..."처럼 작업의 상태를 반영해야 합니다. 또는 "설치 중..."

AppNotificationBuilder.AddProgressBar를 사용하여 알림에 진행률 표시줄을 추가합니다. 다음 예제에서는 위에 표시된 알림을 생성합니다.

var builder = new AppNotificationBuilder()
    .AddText("Downloading your weekly playlist...")
    .AddProgressBar(new AppNotificationProgressBar()
        .SetTitle("Weekly playlist")
        .SetValue(0.6)
        .SetValueStringOverride("15/26 songs")
        .SetStatus("Downloading..."));

진행률 표시줄의 값을 동적으로 업데이트하려면 다음 섹션에 설명된 대로 데이터 바인딩을 사용합니다.

데이터 바인딩을 사용하여 진행률 표시줄 업데이트

라이브 진행률 표시줄을 표시하려면 데이터 바인딩을 사용하여 전체 알림을 다시 보내지 않고 알림 값을 업데이트합니다.

  1. Bind 에서 메서드를 호출 하여 데이터 바인딩된 필드를 사용하여 알림 콘텐츠를 생성합니다.
  2. 태그(및 선택적으로 그룹)를 할당하여 알림을 식별합니다.
  3. 초기 AppNotificationProgressData 값을 설정합니다.
  4. AppNotificationManager.Default.Show를 호출하여 알림을 표시합니다.
using Microsoft.Windows.AppNotifications;
using Microsoft.Windows.AppNotifications.Builder;

string tag = "weekly-playlist";
string group = "downloads";

var builder = new AppNotificationBuilder()
    .AddText("Downloading your weekly playlist...")
    .AddProgressBar(new AppNotificationProgressBar()
        .BindTitle()
        .BindValue()
        .BindValueStringOverride()
        .BindStatus());

var notification = builder.BuildNotification();
notification.Tag = tag;
notification.Group = group;

notification.Progress = new AppNotificationProgressData(1)
{
    Title = "Weekly playlist",
    Value = 0.6,
    ValueStringOverride = "15/26 songs",
    Status = "Downloading..."
};

AppNotificationManager.Default.Show(notification);

그런 다음 새 AppNotificationProgressData 인스턴스를 사용하여 AppNotificationManager.Default.UpdateAsync를 호출하여 진행률 값을 업데이트합니다. 플랫폼이 최신 업데이트임을 알 수 있도록 시퀀스 번호를 증분합니다.

using Microsoft.Windows.AppNotifications;

string tag = "weekly-playlist";
string group = "downloads";

var data = new AppNotificationProgressData(2)
{
    Value = 0.7,
    ValueStringOverride = "18/26 songs"
};

await AppNotificationManager.Default.UpdateAsync(data, tag, group);

전체 알림을 바꾸는 대신 UpdateAsync 를 사용하면 알림 센터에서 알림이 동일한 위치에 유지되고 위 또는 아래로 이동하지 않습니다. 이 메서드는 업데이트가 성공했는지 또는 알림을 찾을 수 없는지 여부를 나타내는 NotificationUpdateResult 를 반환합니다(사용자가 해제했을 수 있음).

데이터 바인딩을 지원하는 요소

앱 알림의 다음 요소는 데이터 바인딩을 지원합니다.

  • AppNotificationProgressBar의 모든 속성
  • 최상위 텍스트 요소의 Text 속성

알림 업데이트 또는 바꾸기

새 알림을 동일한 태그 및 그룹으로 전송하여 알림을 바꿀있습니다. 다음 표에서는 알림 바꾸기와 업데이트의 차이점을 설명합니다.

교체 업데이트 중
알림 센터의 위치 알림을 알림 센터의 맨 위로 이동합니다. 알림 센터 내에서 알림을 제자리에 둡니다.
콘텐츠 수정 알림의 모든 콘텐츠와 레이아웃을 완전히 변경할 수 있습니다. 데이터 바인딩(진행률 표시줄 및 최상위 텍스트)을 지원하는 속성만 변경할 수 있습니다.
팝업으로 다시 표시 SuppressPopupfalse으로 설정된 경우 팝업으로 다시 나타날 수 있으며, true으로 설정하면 알림 센터로 자동 전송됩니다. 팝업으로 다시 나타나지 않습니다. 알림의 데이터는 알림 센터 내에서 자동으로 업데이트됩니다.
사용자가 해제됨 교체 알림은 사용자가 이전 알림을 해제했는지 여부에 관계없이 항상 전송됩니다. 사용자가 알림을 해제하면 업데이트가 실패합니다.

일반적으로 업데이트는 자주 변경되지만, 50%에서 65%로 변경되는 진행률과 같이 사용자의 즉각적인 주의가 필요하지 않은 정보에 유용합니다.

업데이트 시퀀스가 완료된 후(예: 파일 다운로드가 완료됨) 다음과 같은 이유로 마지막 단계에 대한 알림을 교체하는 것이 좋습니다.

  • 최종 알림에는 진행률 표시줄 제거 또는 새 단추 추가와 같은 레이아웃이 다를 수 있습니다.
  • 사용자가 진행률 알림을 해제했지만 작업이 완료되면 여전히 팝업을 보려고 합니다.

참고하십시오