백그라운드 원시 푸시 알림을 사용하는 잠금 화면용 앱을 만드는 방법(HTML)

[ 이 문서는 Windows 런타임 앱을 작성하는 Windows에서 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]

이 항목에서는 Windows 런타임 앱에서 원시 푸시 알림을 사용하는 백그라운드 네트워크 알림을 받도록 잠금 화면용 앱을 만드는 방법을 보여 줍니다. 원시 푸시 알림을 사용하면 앱이 백그라운드에서 실행될 때 잠금 화면에 있는 앱에서 네트워크 알림을 받을 수 있습니다.

목표: 앱이 백그라운드에서 실행될 때 원시 푸시 알림을 사용하는 네트워크 알림을 받는 잠금 화면용 앱을 만듭니다.

사전 요구 사항

  • 다음 정보는 원시 푸시 알림을 사용하는 네트워크 연결을 항상 연결된 상태로 유지해야 하는 모든 연결된 Windows 런타임 앱 또는 네트워크 인식 Windows 런타임 앱에 적용됩니다. 이 항목은 Windows 8.1, Windows Phone 8.1 및 Windows Server 2012 R2에서 JavaScript로 작성된 앱에 적용됩니다.

    원시 푸시 알림을 사용하는 백그라운드 네트워크 연결은 JavaScript 앱 및 C++/XAML로 작성된 앱과 C#, VB.NET 또는 관리 C++로 작성된 .NET Framework 4.5를 사용하는 앱에서 지원됩니다. JavaScript 앱에 적용되는 백그라운드 네트워킹 작업에 대한 자세한 내용은 백그라운드 작업을 사용하여 앱 지원을 참조하세요.

백그라운드 원시 푸시 알림을 사용하는 잠금 화면용 앱 만들기

백그라운드 작업을 활성화하기 위해 WNS를 통해 원시 푸시 알림을 사용할 수 있으려면 먼저 앱을 잠금 화면용 앱으로 만들어야 합니다.

앱을 잠금 화면에 배치하도록 요청하려면 앱 매니페스트에서 해당 접근 권한 값을 설정해야 합니다. 또한 앱에는 잠금 화면에 추가되도록 요청하고 사용자가 잠금 화면에 추가하거나 삭제하는 경우를 처리할 코드가 포함되어야 합니다.

잠금 화면에 앱을 추가하려면 사용자의 동의 확인을 얻어야 합니다. 잠금 화면 요청 API가 호출되면 동의 확인 프롬프트가 나타납니다. 앱이 잠금 화면에서 실행되도록 사용자가 허가하지 않으면 권한을 받기 위한 프롬프트를 다시 표시할 수 없습니다. 그러나 사용자가 실수로 대화 상자를 해제한 경우 프롬프트를 다시 표시할 수 있습니다.

사용자가 잠금 화면용 앱이 되는 권한을 허가하지 않은 경우, 나중에 앱에 대한 시스템 사용 권한 플라이아웃을 통해 앱을 잠금 화면에 추가할 수 있습니다. 사용자는 PC 설정의 개인 설정 섹션에서 잠금 화면에 앱을 수동으로 추가할 수도 있습니다.

앱을 잠금 화면에 배치하도록 요청하려면 다음 단계를 완료해야 합니다. Microsoft Visual Studio 2013에서 package.appxmanifest 파일을 열어 앱 매니페스트를 변경하거나 앱 매니페스트를 직접 수정할 수도 있습니다.

JJ679949.wedge(ko-kr,WIN.10).gif잠금 화면용 앱이 되도록 등록

  1. 앱 타일에 관련된 큰 로고가 있는지를 앱 매니페스트에서 확인합니다. 앱 매니페스트에서 DefaultTile 요소에 대해 WideLogo 특성을 설정했는지 확인합니다.

    다음 샘플은 앱 매니페스트의 <VisualElements> 요소 아래에 DefaultTile 요소를 추가합니다.

        <DefaultTile ShowName="allLogos" WideLogo="images\tile.png" />
    
  2. 백그라운드 작업을 사용하려는 앱의 목적을 나타냅니다. 백그라운드 작업 및 백그라운드 작업의 진입점이 구현되는 클래스 이름을 포함하는 JavaScript 원본 파일도 앱 매니페스트에서 지정해야 합니다.

    WNS와 함께 원시 푸시 알림을 사용하는 잠금 화면용 앱을 빌드하는 경우 JavaScript 원본 파일 및 pushNotification 백그라운드 작업 유형을 지정합니다. 그러면 앱에서 원시 WNS 푸시 알림을 받을 수 있습니다.

    다음 샘플은 앱 매니페스트의 <Application> 요소 아래에 원시 푸시 알림을 추가합니다.

      <Extensions>
        <Extension Category="windows.backgroundTasks" StartPage="js\backgroundTask.js">
          <BackgroundTasks>
            <Task Type="pushNotification" />
          </BackgroundTasks>
        </Extension>
      </Extensions>
    
  3. 앱을 잠금 화면에 둘 것이므로, 누락된 알림을 표시하기 위해 사용할 수 있는 잠금 화면 아이콘도 필요합니다. 아이콘을 사용하려면 LockScreen 요소를 포함하도록 앱 매니페스트를 업데이트합니다.

    다음 샘플은 앱 매니페스트의 <VisualElements> 요소 아래에 추가된 LockScreen 요소를 보여 줍니다.

        <LockScreen Notification="badge" BadgeLogo="Images\badgelogo.png" />
    
  4. 이전 단계를 완료했으면 잠금 화면에 앱이 배치되도록 사용자에게 허가를 요청할 수 있습니다. Background.BackgroundExecutionManager.RequestAccessAsync 메서드는 앱을 잠금 화면에 추가하도록 요청하는 대화 상자를 사용자에게 표시합니다. 사용자가 요청을 승인하면 앱이 백그라운드에서 실행될 수 있으며 잠금 화면에 알림을 표시할 수 있습니다.

    다음 샘플에서는 잠금 화면에 배치되도록 허가를 요청합니다.

    
        var lockScreenAdded = false;
    
        function ClientInit() {
            // Lock screen is required for raw push notification
            // background code to run.
            //
            if (lockScreenAdded == false) {
                BackgroundExecutionManager.RequestAccessAsync().done(function (result) {
    
                switch (result) {
                    case BackgroundAccessStatus.AllowedWithAlwaysOnRealTimeConnectivity:
                        //
                        // App is allowed to use RealTimeConnection broker 
                        // functionality even in low power mode.
                        //
                        lockScreenAdded = true;
                        break;
                    case BackgroundAccessStatus.AllowedMayUseActiveRealTimeConnectivity:
                        //
                        // App is allowed to use RealTimeConnection broker 
                        // functionality but not in low power mode.
                        //
                        lockScreenAdded = true;
                        break;
                    case BackgroundAccessStatus.Denied:
                        //
                        // App should switch to polling mode (example: poll for email based on time triggers)
                        //
                        WinJS.log && WinJS.log("Lock screen access is denied", "sample", "status");
                        break;
                }
            }, function (e) {
                WinJS.log && WinJS.log("An error occurred while requesting lock screen access.", "sample", "error");
            });
        }
    

    원시 푸시 알림을 사용하는 WNS 기반 잠금 화면용 앱을 빌드하는 경우 허가가 승인되면 앱에 대한 BackgroundAccessStatusAllowedMayUseActiveRealTimeConnectivity로 설정됩니다. AllowedWithAlwaysOnRealTimeConnectivity 실시간 연결 옵션은 네트워크 트리거 기능에 대해 사용되며, 원시 푸시 알림을 사용하는 WNS 기반 잠금 화면용 앱에는 영향을 주지 않습니다.

    잠금 화면에 앱을 추가하면 PC 설정개인 설정 섹션에 해당 앱이 표시됩니다. 사용자는 언제든지 앱을 잠금 화면용 앱 목록에서 제거할 수 있습니다. 따라서 앱이 잠금 화면에서 제거된 경우에도 항상 작동하도록 해야 합니다.

    잠금 화면 요청에 대한 자세한 내용은 잠금 화면 개요잠금 화면용 앱 샘플을 참조하세요.

요약 및 다음 단계

푸시 알림 채널을 등록하여 서버로 보내고 백그라운드 작업을 등록하여 원시 푸시 알림에서 활성화하며 원시 푸시 알림을 채널로 보내고 백그라운드 작업을 활성화하는 프로세스에 대한 자세한 내용은 WNS를 사용하여 잠금 화면용 앱에 원시 푸시 알림을 배달하는 방법을 참조하세요.

원시 푸시 알림을 사용하는 백그라운드 네트워크 알림을 받는 백그라운드 작업을 작성하는 방법에 대한 자세한 내용은 원시 푸시 알림에 대해 백그라운드 작업을 작성하는 방법을 참조하세요.

원시 푸시 알림 사용에 대한 지침 및 검사 목록에 대한 자세한 내용은

원시 알림에 대한 지침 및 검사 목록을 참조하세요.

관련 항목

다른 리소스

네트워킹 지원 추가

백그라운드 네트워킹

배지 개요

원시 알림에 대한 지침 및 검사 목록

WNS를 사용하여 잠금 화면용 앱에 원시 푸시 알림을 배달하는 방법

원시 푸시 알림에 대해 백그라운드 작업을 작성하는 방법

잠금 화면 개요

푸시 알림 개요

백그라운드 작업을 사용하여 앱 지원

타일 및 타일 알림 개요

알림 메시지 개요

백그라운드에서 데이터 전송

네트워크 연결 문제 해결 및 디버깅

참조

HttpClient

HttpClientHandler

IXMLHTTPRequest2

System.Net.Http

Windows.ApplicationModel.Background

Windows.Networking.BackgroundTransfer

Windows.Networking.PushNotifications

Windows.Networking.Sockets

샘플

백그라운드 작업 샘플

잠금 화면용 앱 샘플

푸시 및 정기 알림 클라이언트 쪽 샘플

원시 알림 샘플