자습서: Azure Notification Hubs를 사용하여 Windows Phone 앱에 알림 푸시Tutorial: Push notifications to Windows Phone apps by using Azure Notification Hubs

이 자습서에서는 Azure Notification Hubs를 사용하여 Windows Phone 8 또는 Windows Phone 8.1 Silverlight 애플리케이션에 푸시 알림을 보내는 방법을 보여줍니다.This tutorial shows you how to use Azure Notification Hubs to send push notifications to a Windows Phone 8 or Windows Phone 8.1 Silverlight applications. Windows Phone 8.1(비 Silverlight)을 대상으로 하는 경우 이 자습서의 Windows 범용 버전을 참조하세요.If you are targeting Windows Phone 8.1 (non-Silverlight), see the Windows Universal version of this tutorial.

이 자습서에서는 MPNS(Microsoft 푸시 알림 서비스)를 사용하여 푸시 알림을 받는 빈 Windows Phone 8 앱을 만듭니다.In this tutorial, you create a blank Windows Phone 8 app that receives push notifications by using the Microsoft Push Notification Service (MPNS). 앱을 만든 후 알림 허브를 사용하여 앱을 실행하는 모든 디바이스로 푸시 알림을 브로드캐스트합니다.After you create the app, you use your notification hub to broadcast push notifications to all the devices running your app.

참고

Notification Hubs Windows Phone SDK에서는 Windows Phone 8.1 Silverlight 앱에서의 WNS(Windows 푸시 알림 서비스) 사용을 지원하지 않습니다.The Notification Hubs Windows Phone SDK does not support using the Windows Push Notification Service (WNS) with Windows Phone 8.1 Silverlight apps. Windows Phone 8.1 Silverlight 앱에서 MPNS 대신 WNS를 사용하려면 REST API를 사용하는 Notification Hubs - Windows Phone Silverlight 자습서를 따릅니다.To use WNS (instead of MPNS) with Windows Phone 8.1 Silverlight apps, follow the Notification Hubs - Windows Phone Silverlight tutorial, which uses REST APIs.

이 자습서에서는 다음 방법에 대해 알아봅니다.In this tutorial, you learn how to:

  • 알림 허브 만들기Create a notification hub
  • Windows Phone 애플리케이션 만들기Create a Windows Phone application
  • 알림 테스트 보내기Test send a notification

필수 조건Prerequisites

이 자습서를 완료해야 다른 모든 Windows Phone 8 앱용 Notification Hubs 자습서를 진행할 수 있습니다.Completing this tutorial is a prerequisite for all other Notification Hubs tutorials for Windows Phone 8 apps.

알림 허브 만들기Create your notification hub

  1. Azure Portal에 로그인합니다.Sign in to the Azure portal.

  2. 왼쪽 메뉴에서 모든 서비스를 선택하고, 모바일 섹션에서 Notification Hubs를 선택합니다.Select All services on the left menu, and then select Notification Hubs in the Mobile section. 서비스 이름 옆의 별표 아이콘을 선택하여 서비스를 왼쪽 메뉴의 즐겨찾기 섹션에 추가합니다.Select the star icon next to the service name to add the service to the FAVORITES section on the left menu. Notification Hubs즐겨찾기에 추가한 후 왼쪽 메뉴에서 선택합니다.After you add Notification Hubs to FAVORITES, select it on the left menu.

    Azure Portal - Notification Hubs 선택

  3. Notification Hubs 페이지의 도구 모음에서 추가를 선택합니다.On the Notification Hubs page, select Add on the toolbar.

    Notification Hubs - 추가 도구 모음 단추

  4. Notification Hub 페이지에서 다음 단계를 수행합니다.On the Notification Hub page, do the following steps:

    1. 알림 허브에 이름을 입력합니다.Enter a name in Notification Hub.

    2. 새 네임스페이스 만들기에 이름을 입력합니다.Enter a name in Create a new namespace. 네임스페이스에는 하나 이상의 허브가 포함되어 있습니다.A namespace contains one or more hubs.

    3. 위치 드롭다운 목록 상자에서 값을 선택합니다.Select a value from the Location drop-down list box. 이 값은 허브를 만들려는 위치를 지정합니다.This value specifies the location in which you want to create the hub.

    4. 리소스 그룹에서 기존 리소스 그룹을 선택하거나 새 리소스 그룹의 이름을 만듭니다.Select an existing resource group in Resource Group, or create a name for a new resource group.

    5. 만들기를 선택합니다.Select Create.

      Azure Portal - 알림 허브 속성 설정

  5. 알림(벨 아이콘)을 선택하고, 리소스로 이동을 선택합니다.Select Notifications (the bell icon), and then select Go to resource. Notification Hubs 페이지의 목록을 새로 고치고 허브를 선택할 수도 있습니다.You can also refresh the list on the Notification Hubs page and select your hub.

    [Azure Portal] - [알림] -> [리소스로 이동]

  6. 목록에서 액세스 정책을 선택합니다.Select Access Policies from the list. 사용할 수 있는 두 가지 연결 문자열을 적어 둡니다.Note that the two connection strings are available to you. 나중에 푸시 알림을 처리하는 데 필요합니다.You'll need them later to handle push notifications.

    중요

    애플리케이션에서 DefaultFullSharedAccessSignature 정책을 사용하지 마세요.Do not use the DefaultFullSharedAccessSignature policy in your application. 이는 백 엔드에서만 사용할 수 있습니다.This is meant to be used in your back end only.

    Azure Portal - 알림 허브 연결 문자열

Windows Phone(MPNS) 설정 구성Configure Windows Phone (MPNS) settings

  1. 알림 설정 아래에서 Windows Phone(MPNS) 을 선택합니다.Select Windows Phone (MPNS) under NOTIFICATION SETTINGS.

  2. 인증 푸시 사용을 선택합니다.Select Enable authentication push.

  3. 도구 모음에서 저장을 선택합니다.Select Save on the toolbar.

    Azure Portal - 인증되지 않은 푸시 알림 사용

    이제 Windows Phone의 인증되지 않은 알림을 보낼 수 있는 허브가 생성 및 구성되었습니다.Your hub is now created and configured to send unauthenticated notification for Windows Phone.

    참고

    이 자습서에서는 인증되지 않은 모드로 MPNS를 사용합니다.This tutorial uses MPNS in unauthenticated mode. MPNS 인증되지 않은 모드에는 각 채널로 보낼 수 있는 알림에 대한 제한이 있습니다.MPNS unauthenticated mode comes with restrictions on notifications that you can send to each channel. Notification Hubs는 인증서를 업로드할 수 있도록 하여 MPNS 인증 모드를 지원합니다.Notification Hubs supports MPNS authenticated mode by allowing you to upload your certificate.

Windows Phone 애플리케이션 만들기Create a Windows Phone application

이 섹션에서는 알림 허브에 자신을 등록하는 Windows Phone 애플리케이션을 만듭니다.In this section, you create a Windows Phone application that registers itself with your notification hub.

  1. Visual Studio에서 새 Windows Phone 8 애플리케이션을 만듭니다.In Visual Studio, create a new Windows Phone 8 application.

    Visual Studio - 새 프로젝트 - Windows Phone 앱

    Visual Studio 2013 업데이트 2 이상에서는 대신 Windows Phone Silverlight 애플리케이션을 만듭니다.In Visual Studio 2013 Update 2 or later, you instead create a Windows Phone Silverlight application.

    Visual Studio - 새 프로젝트 - 새 응용 프로그램 - Windows Phone Silverlight

  2. Visual Studio에서 솔루션을 마우스 오른쪽 단추로 클릭한 후 NuGet 패키지 관리를 클릭합니다.In Visual Studio, right-click the solution, and then click Manage NuGet Packages.

  3. WindowsAzure.Messaging.Managed를 검색하고 설치를 클릭한 후 사용 약관에 동의합니다.Search for WindowsAzure.Messaging.Managed and click Install, and then accept the terms of use.

    Visual Studio - NuGet 패키지 관리자

  4. App.xaml.cs 파일을 열고 다음 using 문을 추가합니다.Open the file App.xaml.cs and add the following using statements:

     using Microsoft.Phone.Notification;
     using Microsoft.WindowsAzure.Messaging;
    
  5. App.xaml.cs에서 Application_Launching 메서드 맨 위에 다음 코드를 추가합니다.Add the following code at the top of Application_Launching method in App.xaml.cs:

    private void Application_Launching(object sender, LaunchingEventArgs e)
    {
    
        var channel = HttpNotificationChannel.Find("MyPushChannel");
        if (channel == null)
        {
            channel = new HttpNotificationChannel("MyPushChannel");
            channel.Open();
            channel.BindToShellToast();
        }
    
        channel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(async (o, args) =>
        {
            var hub = new NotificationHub("<hub name>", "<connection string>");
            var result = await hub.RegisterNativeAsync(args.ChannelUri.ToString());
    
            System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                MessageBox.Show("Registration :" + result.RegistrationId, "Registered", MessageBoxButton.OK);
            });
        });
    }
    

    참고

    MyPushChannelHttpNotificationChannel 컬렉션에서 기존 채널을 조회하는 데 사용되는 인덱스입니다.The value MyPushChannel is an index that is used to lookup an existing channel in the HttpNotificationChannel collection. 항목이 없으면 해당 이름을 가진 새 항목을 만듭니다.If there isn't one there, create a new entry with that name.

    이전 섹션에서 적어둔 허브 이름과 DefaultListenSharedAccessSignature라는 연결 문자열을 삽입합니다.Insert the name of your hub and the connection string called DefaultListenSharedAccessSignature that you noted in the previous section. 이 코드는 MPNS에서 앱의 채널 URI를 검색한 후 해당 채널 URI를 알림 허브에 등록합니다.This code retrieves the channel URI for the app from MPNS, and then registers that channel URI with your notification hub. 또한 이 코드는 애플리케이션이 시작될 때마다 채널 URI가 알림 허브에 등록되도록 보장합니다.It also guarantees that the channel URI is registered in your notification hub each time the application is launched.

    참고

    이 자습서에서는 알림 메시지를 디바이스로 보냅니다.This tutorial sends a toast notification to the device. 타일 알림을 보내는 경우 채널에서 BindToShellTile 메서드를 대신 호출해야 합니다.When you send a tile notification, you must instead call the BindToShellTile method on the channel. 알림 및 타일 알림을 둘 다 지원하려면 BindToShellTileBindToShellToast를 모두 호출합니다.To support both toast and tile notifications, call both BindToShellTile and BindToShellToast.

  6. 솔루션 탐색기에서 속성을 확장하고 WMAppManifest.xml 파일을 연 후 기능 탭을 클릭하고 ID_CAP_PUSH_NOTIFICATION 기능이 선택되었는지 확인합니다.In Solution Explorer, expand Properties, open the WMAppManifest.xml file, click the Capabilities tab, and make sure that the ID_CAP_PUSH_NOTIFICATION capability is checked. 앱은 이제 푸시 알림을 받을 수 있습니다.Your app can receive push notifications now.

    Visual Studio - Windows Phone 앱 기능

  7. F5 키를 눌러 앱을 실행합니다.Press the F5 key to run the app. 앱에 등록 메시지가 표시됩니다.A registration message is displayed in the app.

  8. 앱을 닫거나 홈페이지로 전환합니다.Close the app or switch to the home page.

    참고

    푸시 알림 메시지를 받으려면 애플리케이션이 포그라운드에서 실행되고 있지 않아야 합니다.To receive a toast push notification, the application must not be running in the foreground.

알림 테스트 보내기Test send a notification

  1. Azure Portal에서 개요 탭으로 전환합니다.In the Azure portal, switch to the Overview tab.

  2. 테스트 보내기를 선택합니다.Select Test Send.

    테스트 보내기 단추

  3. 테스트 보내기 창에서 다음 단계를 수행합니다.In the Test Send window, take the following steps:

    1. 플랫폼에 대해 Windows Phone을 선택합니다.For Platforms, select Windows Phone.

    2. 알림 유형에 대해 알림을 선택합니다.For Notification Type, select Toast.

    3. 보내기를 선택합니다.Select Send

    4. 창의 맨 아래에 있는 목록에 결과가 표시됩니다.See the result in the list at the bottom of the window.

      테스트 보내기 창

  4. Windows Phone 에뮬레이터 또는 Windows 휴대폰에서 알림 메시지가 표시되는지 확인합니다.In the Windows Phone emulator or on the Windows phone, confirm that you see the notification message.

    Windows 휴대폰의 알림

다음 단계Next steps

이 간단한 예제에서는 모든 Windows Phone 8 디바이스로 푸시 알림을 브로드캐스트했습니다.In this simple example, you broadcasted push notifications to all your Windows Phone 8 devices. 특정 디바이스로 알림을 푸시하는 방법을 알아보려면 다음 자습서를 계속 진행합니다.Advance to the following tutorial to learn how to push notifications to specific devices: