알림 메시지에서 활성화를 처리하는 방법(HTML)
[ 이 문서는 Windows 런타임 앱을 작성하는 Windows에서 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]
참고 JavaScript를 사용하지 않는 경우 알림 메시지에서 활성화를 처리하는 방법(XAML)을 참조하세요.
이 항목에서는 앱에서 보낸 알림 메시지를 사용자가 클릭할 때 이에 응답하여 취해야 할 조치에 대해 설명합니다. 앱은 알림과 관련된 UI를 표시하여 응답해야 합니다. 일반적으로 앱은 알림 콘텐츠와 관련된 컨텍스트 또는 뷰에서 시작되어야 합니다. 이 작업은 알림 페이로드에 포함된 활성화 문자열을 통해 수행됩니다. 이 문자열은 활성화 이벤트에서 인수로 앱에 전달됩니다. 기본 데이터 흐름은 다음과 같습니다.
- 앱 또는 웹 서비스에서 시작 문자열을 비롯한 알림 페이로드를 만들어서 보냅니다.
- 알림이 발생하고 관리 센터로 전송됩니다.
- 사용자가 알림을 선택합니다(클릭 또는 터치).
- 활성화된 이벤트가 발생합니다.
- 앱의 활성화된 이벤트 처리기가 시작 문자열을 읽습니다.
- 시작 문자열에 제공된 매개 변수를 사용하여 앱이 시작됩니다.
참고 Microsoft Visual Studio를 통해 알림 메시지 코드 기능을 테스트하는 경우 Windows x86, x64 또는 Windows 런타임 컴퓨터에서 로컬 컴퓨터 또는 원격 컴퓨터 디버그 설정을 사용해야 합니다. Visual Studio 시뮬레이터 디버그 기능 옵션은 사용할 수 없습니다. 코드가 컴파일되고 시뮬레이터에서 실행되지만 알림은 표시되지 않습니다.
알아야 할 사항
기술
- Windows Runtime
사전 요구 사항
이 항목을 이해하기 위해 필요한 항목은 다음과 같습니다.
- 알림 메시지 용어와 개념에 대한 기본 지식 자세한 내용은 알림 메시지 개요를 참조하세요.
- 알림 메시지를 보내거나 받으려면 앱 매니페스트에서 Toast Capable(알림 가능) 옵션이 "true"(Visual Studio 매니페스트 편집기에서는 "예")로 설정되어 있어야 합니다. 자세한 내용은 빠른 시작: Visual Studio 매니페스트 편집기를 사용하여 기본 타일 만들기 및 알림 메시지를 옵트인(opt in)하는 방법을 참조하세요.
- DOM(문서 개체 모델) API에서 XML 사용 및 XML 조작에 대한 경험
- 알림 XML 스키마를 사용한 경험 자세한 내용은 알림 스키마를 참조하세요.
- Windows 런타임 API를 사용하여 JavaScript로 기본 Windows 스토어 앱을 만들 수 있는 능력 자세한 내용은 JavaScript를 사용하는 첫 번째 Windows 스토어 앱 만들기를 참조하세요.
지침
단계 1: 알림 페이로드에 활성화 데이터 포함
알림 메시지를 통해 앱이 활성화된 경우 알림 콘텐츠와 관련된 정보를 앱에 제공해야 합니다. 그러면 앱은 기본값 대신 관련 뷰로 시작하여 해당 콘텐츠를 반영할 수 있습니다. 앱 또는 웹 서비스는 알림을 만들 때 launch 특성을 사용하여 이러한 활성화 정보를 지정합니다. 문자열은 명령줄 인수와 유사한 것으로 간주할 수 있습니다. XML 페이로드가 유효하지 않게 되는 정보를 제외하고 문자열에는 앱이 이해할 수 있는 모든 정보가 포함될 수 있습니다. 시작 문자열을 포함한 알림 XML 페이로드의 전체 크기는 5KB를 초과할 수 없습니다.
시작 특성 문자열을 포함하지 않을 경우 사용자가 시작 화면에서 앱을 시작한 것처럼 앱이 정상적으로 시작됩니다.
이 단계에서는 이전에 만든 XmlDocument 개체(toastXml
)를 사용한다고 가정합니다. 이 예제에서는 launch 특성을 만들고, 해당 문자열 값을 할당한 다음 알림 메시지의 XML 페이로드에 추가합니다. 전체 알림 메시지를 만드는 방법에 대한 자세한 내용은 빠른 시작: 알림 메시지 보내기를 참조하세요.
var launchAttribute = toastXml.createAttribute("launch");
launchAttribute.value = "{\"myContext\":\"12345\"}";
var toastNode = toastXml.selectSingleNode("/toast");
toastNode.attributes.setNamedItem(launchAttribute);
위 코드는 다음과 같은 XML이 되며, 빠른 시작: 알림 메시지 보내기에 정의된 visual 요소의 내용을 기반으로 합니다.
<toast launch="{"myContext":"12345"}">
<visual>
<binding template="ToastImageAndText01">
<image id="1" src="ms-appx:///images/redWide.png" alt="red graphic"/>
<text id="1">Hello World!</text>
</binding>
</visual>
</toast>
단계 2: "activated" 이벤트 등록
사용자가 알림을 클릭하거나 터치하여 선택하면 activated 이벤트가 발생합니다. 이벤트에 대한 정보를 받을 수 있도록 addEventListener 함수를 통해 앱을 등록해야 합니다.
참고 알림에 launch 특성 문자열을 포함하지 않고 알림이 선택되었을 때 앱이 이미 실행되고 있지 않으면 activated 이벤트가 발생하지 않습니다.
WinJS.Application.addEventListener("activated", onActivatedHandler, false);
단계 3: 알림의 "activated" 이벤트에 대해 처리기 구현
등록된 이벤트 처리기는 활성화 유형과 상관없이 모든 활성화 이벤트를 받습니다. 이벤트 알림에 포함된 kind 속성은 활성화 이벤트의 유형을 나타냅니다. 사용자가 XML 페이로드에 launch 특성이 지정된 알림을 클릭하면 일종의 launch 활성화 이벤트가 발생합니다. 이것은 사용자가 앱의 기본 또는 보조 타일을 탭할 때 발생하는 것과 같은 이벤트입니다.
1단계에서 launch 특성을 통해 제공한 활성화 문자열은 이벤트 알림의 arguments 속성에 포함됩니다.
이 예제는 2단계에서 등록한 활성화된 이벤트 처리기의 개요를 보여 줍니다.
function onActivatedHandler(args) {
if (args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {
var launchString = args.detail.arguments;
// Handle activation as required for your app, using the launch string.
}
}