정기 알림 개요
정기 알림(폴링된 알림이라고도 함)은 고정된 간격에 따라 클라우드 서비스에서 콘텐츠를 다운로드하여 타일 및 배지를 업데이트합니다. 정기적인 알림을 사용하려면 클라이언트 앱 코드에서 다음 두 가지 정보를 제공해야 합니다.
- Windows에서 앱의 타일 또는 배지 업데이트를 폴링할 웹 위치의 URI(Uniform Resource Identifier)입니다.
- 해당 URI를 폴링해야 하는 빈도
정기적인 알림을 통해 앱은 최소한의 클라우드 서비스 및 클라이언트 투자로 라이브 타일 업데이트를 받을 수 있습니다. 정기 알림은 동일한 콘텐츠를 광범위한 대상 그룹에 배포하기 위한 좋은 전달 방법입니다.
참고 Windows 8.1용 푸시 및 정기 알림 샘플을 다운로드하고 Windows 10 앱에서 해당 소스 코드를 다시 사용하여 자세히 알아볼 수 있습니다.
작동 방식
정기적인 알림을 사용하려면 앱이 클라우드 서비스를 호스트해야 합니다. 서비스는 앱을 설치한 모든 사용자가 주기적으로 폴링합니다. 각 폴링 간격(예: 한 시간에 한 번)에서 Windows는 URI에 HTTP GET 요청을 보내고, 요청에 대한 응답으로 제공된 요청된 타일 또는 배지 콘텐츠(XML)를 다운로드하고, 앱의 타일에 콘텐츠를 표시합니다.
정기 업데이트는 알림 메시지와 함께 사용할 수 없습니다. 알림은 예약된 알림 또는 푸시 알림을 통해 전달하는 것이 가장 좋습니다.
URI 위치 및 XML 콘텐츠
유효한 HTTP 또는 HTTPS 웹 주소는 폴링할 URI로 사용할 수 있습니다.
클라우드 서버의 응답에는 다운로드한 콘텐츠가 포함됩니다. URI에서 반환된 콘텐츠는 타일 또는 배지 XML 스키마 사양을 준수해야 하며 UTF-8로 인코딩되어야 합니다. 정의된 HTTP 헤더를 사용하여 알림에 대한 만료 시간 또는 태그를 지정할 수 있습니다.
폴링 동작
다음 방법 중 하나를 호출하여 폴링을 시작합니다.
이러한 방법 중 하나를 호출하면 URI가 즉시 폴링되고 타일 또는 배지가 수신된 콘텐츠로 업데이트됩니다. 이 초기 폴링 후에 Windows는 요청된 간격으로 업데이트를 계속 제공합니다. 명시적으로 중지하거나(TileUpdater.StopPeriodicUpdate 사용), 앱이 제거되거나 보조 타일의 경우 타일이 제거될 때까지 폴링이 계속됩니다. 그렇지 않으면 앱이 다시 시작되지 않더라도 Windows는 타일 또는 배지에 대한 업데이트를 계속 폴링합니다.
되풀이 간격
되풀이 간격을 위에 나열된 메서드의 매개 변수로 지정합니다. Windows는 요청된 대로 폴링하기 위해 최선을 다하지만 간격은 정확하지 않습니다. 요청된 폴링 간격은 Windows의 재량에 따라 최대 15분까지 지연될 수 있습니다.
시작 시간
필요에 따라 폴링을 시작할 특정 시간을 지정할 수 있습니다. 타일 콘텐츠를 하루에 한 번만 변경하는 앱을 고려해 보겠습니다. 이러한 경우 클라우드 서비스를 업데이트하는 시간에 가까운 시간을 폴링하는 것이 좋습니다. 예를 들어 일일 쇼핑 사이트에서 오전 8시에 오늘의 혜택을 게시하는 경우 오전 8시 직후에 새 타일 콘텐츠를 폴링합니다.
시작 시간을 제공하는 경우 메서드에 대한 첫 번째 호출은 콘텐츠를 즉시 폴링합니다. 그런 다음, 일반 폴링은 제공된 시작 시간 후 15분 이내에 시작됩니다.
자동 다시 시도 동작
URI는 디바이스가 온라인 상태인 경우에만 폴링됩니다. 네트워크를 사용할 수 있지만 어떤 이유로든 URI에 연결할 수 없는 경우 폴링 간격의 이 반복을 건너뛰고 URI는 다음 간격에 다시 폴링됩니다. 폴링 간격에 도달할 때 디바이스가 꺼져 있거나 절전 모드 또는 최대 절전 모드 상태인 경우 디바이스가 꺼져 있는 상태나 절전 모드 상태에서 돌아올 때 URI가 폴링됩니다.
앱 업데이트 처리
폴링 URI를 변경하여 앱 업데이트를 배포하는 경우에는 새로운 URI로 StartPeriodicUpdate를 호출하는 일별 시간 트리거 백그라운드 작업을 추가하여 타일이 새로운 URI를 사용할 수 있도록 해야 합니다. 그렇지 않고 사용자가 앱 업데이트를 받고도 앱을 시작하지 않으면 타일이 계속해서 이전 URI를 사용하여 URI가 잘못되었는지 혹은 반환된 페이로드가 존재하지 않는 로컬 이미지를 참조하는지 표시하지 못할 수도 있습니다.
타일 및 배지 알림 만료
기본적으로 정기적인 타일 및 배지 알림은 다운로드한 시간으로부터 3일 후에 만료됩니다. 알림이 만료되면 배지, 타일 또는 큐에서 콘텐츠가 제거되고 사용자에게 더 이상 표시되지 않습니다. 앱 또는 알림에 적합한 시간을 사용하여 모든 주기적 타일 및 배지 알림에서 명시적 만료 시간을 설정하여 콘텐츠가 관련 항목보다 오래 지속되지 않도록 하는 것이 가장 좋습니다. 명시적 만료 시간은 정의된 수명이 있는 콘텐츠에 필수적입니다. 또한 클라우드 서비스에 연결할 수 없게 되거나 사용자가 오랜 기간 동안 네트워크에서 연결을 끊는 경우 부실 콘텐츠를 제거할 수 있습니다.
클라우드 서비스는 응답 페이로드에 X-WNS-Expires HTTP 헤더를 포함하여 알림의 만료 날짜 및 시간을 설정합니다. X-WNS-Expires HTTP 헤더는 HTTP 날짜 형식을 준수합니다. 자세한 내용은 StartPeriodicUpdate 또는 StartPeriodicUpdateBatch를 참조하세요.
예를 들어 주식 시장의 활성 거래일 동안 주식 가격 업데이트의 만료를 폴링 간격의 두 배로 설정할 수 있습니다(예: 반시간마다 폴링하는 경우 수신 후 1시간). 또 다른 예로, 뉴스 앱은 하루가 일일 뉴스 타일 업데이트에 적절한 만료 시간이라고 판단할 수 있습니다.
알림 큐의 정기 알림
알림 순환과 함께 주기적인 타일 업데이트를 사용할 수 있습니다. 기본적으로 시작 화면의 타일은 새 알림으로 대체될 때까지 단일 알림의 콘텐츠를 표시합니다. 순환을 사용하도록 설정하면 최대 5개의 알림이 큐에 유지되고 기본 타일이 순환됩니다.
큐가 5개의 알림 용량에 도달하면 다음 새 알림이 큐에서 가장 오래된 알림을 대체합니다. 그러나 알림에 태그를 설정하면 큐의 대체 정책에 영향이 미칠 수 있습니다. 태그는 응답 페이로드의 X-WNS-Tag HTTP 헤더에 지정된 최대 16자의 앱별 대/소문자를 구분하지 않는 문자열입니다. Windows는 들어오는 알림의 태그를 큐에 이미 있는 모든 알림의 태그와 비교합니다. 일치하는 항목이 발견되면 새 알림이 대기 중인 알림을 동일한 태그로 바꿉니다. 일치하는 항목이 없으면 기본 대체 규칙이 적용되고 새 알림이 큐에서 가장 오래된 알림을 대체합니다.
알림 큐 및 태그 지정을 사용하여 다양한 알림 시나리오를 구현할 수 있습니다. 예를 들어 주식 앱은 각각 다른 주식에 대한 5개의 알림을 보내고 각각 주식 이름으로 태그가 지정될 수 있습니다. 이렇게 하면 큐에 동일한 주식에 대한 두 개의 알림이 포함되지 않습니다. 그 중 오래된 알림은 만료되었습니다.
자세한 내용은 알림 큐 사용을 참조하세요.
알림 큐 사용
알림 큐를 구현하려면 먼저 타일에 큐를 사용하도록 설정합니다(로컬 알림과 함께 알림 큐를 사용하는 방법 참조). 큐를 사용하도록 설정하는 호출은 앱의 수명 동안 한 번만 수행되어야 하지만 앱이 시작될 때마다 호출에 해가 되지 않습니다.
한 번에 둘 이상의 알림 폴링
타일에 대해 Windows가 다운로드하기를 원하는 각 알림에 대해 고유한 URI를 제공해야 합니다. StartPeriodicUpdateBatch 메서드를 사용하면 알림 큐에 사용할 수 있도록 한 번에 최대 5개의 URI를 제공할 수 있습니다. 각 URI는 동시에 또는 거의 동시에 단일 알림 페이로드에 대해 폴링됩니다. 폴링된 각 URI는 자체 만료 및 태그 값을 반환할 수 있습니다.
관련 항목
Windows developer