Руководство. Отправка уведомлений в приложения универсальная платформа Windows с помощью Центров уведомлений Azure

В этом руководстве создается Центр уведомлений Azure для отправки push-уведомлений в приложение универсальной платформы Windows (UWP). Вы создадите пустое приложение Магазина Windows, получающее push-уведомления с помощью службы push-уведомлений Windows (WNS). Затем вы сможете рассылать push-уведомления на все устройства, на которых запущено ваше приложение, с помощью центра уведомлений.

Примечание.

Полный код для работы с этим руководством можно найти на портале GitHub.

Вам необходимо сделать следующее:

  • Создание приложения в Магазине Windows
  • Создание центра уведомлений
  • Создание примера приложения Windows
  • Отправка проверочных уведомлений

Необходимые компоненты

  • Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
  • Microsoft Visual Studio 2017 или более поздней версии. В примере для этого учебника используется Visual Studio 2019.
  • Установленные средства разработки приложений универсальной платформы Windows
  • Активная учетная запись Магазина Windows.
  • Убедитесь, что параметр Получать уведомления от приложений и других отправителей включен.
    • Откройте окно Параметры на компьютере.
    • Выберите элемент Система.
    • Выберите Notifications & actions (Уведомления и действия) в меню слева.
    • Убедитесь, что параметр Получать уведомления от приложений и других отправителей включен. Если он не включен, включите его.

Изучение этого руководства является необходимым условием для работы со всеми остальными руководствами, посвященными Центрам уведомлений для приложений универсальной платформы Windows.

Создание приложения в Магазине Windows

Примечание.

Служба push-уведомлений (Майкрософт) (MPNS) устарела и больше не поддерживается.

Чтобы отправлять push-уведомления в приложения UWP, необходимо связать приложение с Магазином Windows. Затем необходимо настроить интеграцию концентратора уведомлений с WNS.

  1. Перейдите в Центр разработки для Windows, войдите с помощью учетной записи Майкрософт, а затем выберите Создать приложение.

    New app button

  2. Введите имя приложения и выберите Зарезервировать имя продукта. Будет создана регистрация в Магазине Windows для вашего приложения.

    Store app name

  3. Разверните узел Управление продуктом и выберите пункт Удостоверение продукта. Запишите Идентификатор безопасности пакета, Пакет, удостоверение, имя, Пакет/удостоверение/издатель, а также значения Пакет/свойство/отображаемое имя издателя.

    Partner center apps

  4. В разделе Управление продуктом выберите WNS/MPNS, а затем выберите Портал регистрации приложений. Войдите в систему с помощью учетной записи Майкрософт. Страница регистрации приложений откроется в новой вкладке.

    WNS page

  5. В разделе Essentialsвыберите Учетные данные клиента: добавить сертификат или секрет.

    Notification Hub settings on Azure portal

  6. На странице "Сертификаты и секреты" в разделе секретов клиента выберите новый секрет клиента. Создав секрет клиента (также называемого секретом приложения), запишите его, прежде чем покинуть страницу.

    Предупреждение

    Вы можете только просматривать значения секрета клиента (секрета приложения) сразу после их создания. Обязательно сохраните секрет, прежде чем покинуть страницу.

    Client secret on portal

    Предупреждение

    Секрет приложения и ИД безопасности пакета — это важные учетные данные для безопасного доступа. Не сообщайте никому эти значения и не распространяйте их вместе со своим приложением.

Создание центра уведомлений

  1. Войдите на портал Azure.

  2. В меню слева выберите Все службы. A screenshot showing select All Services for an existing namespace.

  3. Введите центры уведомлений в текстовом поле " Службы фильтрации". Щелкните значок звездочки рядом с именем службы, чтобы добавить ее в раздел Избранное в меню слева. Выберите Центры уведомлений.

    A screenshot showing how to filter for notification hubs.

  4. На странице Центры уведомлений выберите Добавить на панели инструментов.

    A screenshot showing how to create a new notification hub.

  5. На вкладке Основные сведения на странице Центр уведомлений выполните следующие действия:

    1. В поле Подписка выберите имя подписки Azure, которую вы хотите использовать, а затем выберите существующую группу ресурсов или создайте новую.

    2. Введите уникальное имя нового пространства имен в разделе Сведения о пространстве имен.

    3. Пространство имен содержит один или несколько концентраторов уведомлений, поэтому укажите имя концентратора в разделе Сведения о Центре уведомлений.

    4. Выберите значение в раскрывающемся списке Расположение. Это значение определяет расположение, в котором создается центр.

      Screenshot showing notification hub details.

    5. Просмотрите параметр Зоны доступности. Если выбран регион с зонами доступности, по умолчанию выбрано поле проверка. Зоны доступности является платной функцией, поэтому дополнительная плата добавляется на ваш уровень.

    6. Выберите вариант аварийного восстановления: Нет, парный регион восстановления или гибкий регион восстановления. При выборе парного региона восстановления отображается регион отработки отказа. Если выбрать гибкий регион восстановления, используйте раскрывающийся список регионов восстановления.

      Screenshot showing availability zone details.

    7. Нажмите кнопку создания.

  6. После завершения развертывания выберите "Перейти к ресурсу".

Настройка параметров WNS для центра

  1. Выберите Windows (WNS) в категории Параметры уведомлений.

  2. Введите значения для параметров SID пакета (например, "ms-app://<Your Package SID>") и Ключ безопасности (Секрет приложения), которые вы записали в предыдущем разделе.

  3. Нажмите кнопку Сохранить на панели инструментов.

    The Package SID and Security Key boxes

Теперь концентратор уведомлений настроен для работы с WNS. А у вас есть строки подключения для регистрации приложения и отправки уведомлений.

Создание примера приложения Windows

  1. В Visual Studio откройте меню Файл и выберите Создать, а затем — Проект.

  2. В диалоговом окне Создать проект сделайте следующее:

    1. В поле поиска в верхней части страницы введите Windows Universal.

    2. В результатах поиска выберите Blank App (Universal Windows) (Пустое приложение (универсальные приложения Windows)), а затем выберите Далее.

      New Project dialog

    3. В диалоговом окне Настроить новый проект введите имя проектаи расположение для файлов проекта.

    4. Нажмите кнопку создания.

  3. Примите значения по умолчанию для целевой и минимальной версий платформы и нажмите кнопку ОК.

  4. В обозревателе решений щелкните правой кнопкой мыши проект приложения для Магазина Windows, выберите Опубликовать, а затем — Связать приложение с Магазином. Откроется мастер Свяжите свое приложение с Магазином Windows .

  5. В мастере войдите с помощью учетной записи Майкрософт.

  6. Выберите приложение, зарегистрированное на шаге 2, нажмите кнопку Далее, а затем выберите Связать. После этого необходимые регистрационные данные Магазина Windows будут добавлены в манифест приложения.

  7. В Visual Studio щелкните решение правой кнопкой мыши, а затем выберите пункт Управление пакетами NuGet. Откроется окно Управление пакетами NuGet.

  8. В поле поиска введите WindowsAzure.Messaging.Managed, затем выберите установить и примите условия использования.

    The Manage NuGet Packages window

    Это действие предназначено для скачивания и установки библиотеки Центров уведомлений Azure для Windows, а также добавления ссылки на нее с помощью пакета NuGet Microsoft.Azure.Notification Hubs.

  9. Откройте файл проекта App.xaml.cs и добавьте следующие операторы:

    using Windows.Networking.PushNotifications;
    using Microsoft.WindowsAzure.Messaging;
    using Windows.UI.Popups;
    
  10. В файле проекта App.xaml.cs найдите класс App и добавьте следующее определение метода InitNotificationsAsync. Замените <your hub name> именем центра уведомлений, созданным на портале Azure, а <Your DefaultListenSharedAccessSignature connection string> — строкой подключения DefaultListenSharedAccessSignature, полученной на странице Политики доступа в центре уведомлений:

    private async void InitNotificationsAsync()
    {
        var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
    
        var hub = new NotificationHub("<your hub name>", "<Your DefaultListenSharedAccessSignature connection string>");
        var result = await hub.RegisterNativeAsync(channel.Uri);
    
        // Displays the registration ID so you know it was successful
        if (result.RegistrationId != null)
        {
            var dialog = new MessageDialog("Registration successful: " + result.RegistrationId);
            dialog.Commands.Add(new UICommand("OK"));
            await dialog.ShowAsync();
        }
    }
    

    Этот код получает универсальный идентификатор ресурса (URI) канала для приложения из WNS, а затем регистрирует этот идентификатор в вашем центре уведомлений.

    Примечание.

    Замените заполнитель hub name именем концентратора уведомлений, которое отображается на портале Azure. Кроме того, замените заполнитель строки подключения строкой подключения DefaultListenSharedAccessSignature, полученной на странице Политики доступа концентратора уведомлений при работе с предыдущим разделом.

  11. В верхней части обработчика событий OnLaunched в файле App.xaml.cs добавьте следующий вызов к новому методу InitNotificationsAsync:

    InitNotificationsAsync();
    

    Это обеспечит регистрацию URI канала в центре уведомлений при каждом запуске приложения.

  12. Щелкните Package.appxmanifest правой кнопкой мыши и выберите Посмотреть код (F7). Укажите <Identity .../> и замените значение Имя значением Пакет/удостоверение/имя и замените значение Издатель значением Пакет/удостоверение/издатель из созданного ранее приложения.

  13. Чтобы запустить приложение, нажмите на клавиатуре клавишу F5. Отобразится диалоговое окно, содержащее ключ регистрации. Чтобы закрыть диалоговое окно, нажмите кнопкуОК.

    Registration successful

Теперь приложение готово к получению всплывающих уведомлений.

Отправка проверочных уведомлений

Чтобы проверить получение уведомлений в приложении, отправьте уведомления на портале Azure.

  1. На портале Azure перейдите на вкладку "Обзор" и выберите Тестовая отправка на панели инструментов.

    Test Send button

  2. В окне Тестовая отправка сделайте следующее:

    1. В поле Платформы выберите значение Windows.

    2. В поле Тип уведомления выберите значение Всплывающее уведомление.

    3. Выберите Отправить.

      The Test Send pane

  3. Просмотреть результат операции отправки можно в списке Результат в нижней части окна. Также появится оповещение.

    Result of Send operation

  4. Вы увидите оповещение Тестовое сообщение на своем рабочем столе.

    Notification message

Следующие шаги

Вы настроили рассылку уведомлений на все устройства Windows через портал или консольное приложение. Чтобы узнать, как отправлять push-уведомления на конкретные устройства, перейдите к следующему руководству: