Руководство по Отправка push-уведомлений в приложения Xamarin.iOS с помощью Центров уведомлений AzureTutorial: Send push notifications to Xamarin.iOS apps using Azure Notification Hubs

ОбзорOverview

В этом учебнике показано, как использовать Центры уведомлений Azure для отправки push-уведомлений в приложение на платформе iOS.This tutorial shows you how to use Azure Notification Hubs to send push notifications to an iOS application. Вы создадите пустое приложение Xamarin.iOS, получающее push-уведомления с помощью Службы push-уведомлений Apple (APNs).You create a blank Xamarin.iOS app that receives push notifications by using the Apple Push Notification service (APNs).

По завершении вы сможете рассылать push-уведомления на все устройства, где запущено ваше приложение, с помощью центра уведомлений.When you're finished, you are able to use your notification hub to broadcast push notifications to all the devices running your app. Готовый код доступен в примере приложения NotificationHubs.The finished code is available in the NotificationHubs app sample.

В рамках этого руководства создается или обновляется код для выполнения следующих задач:In this tutorial, you create/update code to do the following tasks:

  • Создание файла запроса на подпись сертификатаGenerate the certificate signing request file
  • Регистрация приложения для работы с push-уведомлениямиRegister your app for push notifications
  • Создание профиля подготовки для приложенияCreate a provisioning profile for the app
  • настройка push-уведомлений iOS в центре уведомлений;Configure your notification hub for iOS push notifications
  • Отправка тестовых push-уведомленийSend test push notifications

Предварительные требованияPrerequisites

  • Подписка Azure.Azure subscription. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.If you don't have an Azure subscription, create a free Azure account before you begin.

  • последняя версия XcodeLatest version of Xcode

  • устройство под управлением iOS 10 (или более поздней версии);An iOS 10 (or later version) compatible device

  • программе для разработчиков на платформе Apple .Apple Developer Program membership.

  • Visual Studio для MacVisual Studio for Mac

    Примечание

    Из-за требований к конфигурации push-уведомлений для устройств iOS развертывание и тестирование примера приложения необходимо выполнять на физическом устройстве iOS (iPhone или iPad), а не в симуляторе.Because of configuration requirements for iOS push notifications, you must deploy and test the sample application on a physical iOS device (iPhone or iPad) instead of in the simulator.

Изучение этого руководства важно для понимания всех других руководств, посвященных Центрам уведомлений для приложений Xamarin.iOS.Completing this tutorial is a prerequisite for all other Notification Hubs tutorials for Xamarin.iOS apps.

Создание файла запроса на подписывание сертификатаGenerate the certificate-signing request file

Служба push-уведомлений Apple (APNs) использует сертификаты для аутентификации push-уведомлений.The Apple Push Notification Service (APNs) uses certificates to authenticate your push notifications. Следуйте приведенным указаниям, чтобы создать сертификата push-уведомлений, необходимый для отправки и получения уведомлений.Follow these instructions to create the necessary push certificate to send and receive notifications. Дополнительные сведения об этих понятиях см. в официальной документации по Службе push-уведомлений Apple.For more information on these concepts, see the official Apple Push Notification Service documentation.

Создайте файл запроса на подписывание сертификата (CSR), используемый Apple для создания подписанного сертификата push-уведомлений.Generate the Certificate Signing Request (CSR) file, which Apple uses to generate a signed push certificate.

  1. На компьютере Mac запустите средство Keychain Access.On your Mac, run the Keychain Access tool. Его можно запустить из папки Служебные программы или Другое на панели запуска.It can be opened from the Utilities folder or the Other folder on the Launchpad.

  2. Нажмите Связка ключей, разверните Помощник по сертификатам, а затем выберите Запросить сертификат в центре сертификации.Select Keychain Access, expand Certificate Assistant, and then select Request a Certificate from a Certificate Authority.

    Использование Keychain Access для запрашивания нового сертификата

    Примечание

    По умолчанию при осуществлении доступа к цепочке ключей выбирается первый элемент списка.By default, Keychain Access selects the first item in the list. Это может вызвать проблемы, если у вас открыта категория сертификатов и центр сертификации Apple Worldwide Developer Relations не указан в списке первым.This can be a problem if you're in the Certificates category and Apple Worldwide Developer Relations Certification Authority is not the first item in the list. Прежде чем создавать CSR (запрос на подписывание сертификата), убедитесь, что выбран элемент, не являющийся ключом, или ключ центра сертификации Apple Worldwide Developer Relations.Make sure you have a non-key item, or the Apple Worldwide Developer Relations Certification Authority key is selected, before generating the CSR (Certificate Signing Request).

  3. Заполните поля Адрес электронной почты пользователя и Личное имя, выберите Сохранено на диск, а затем — Продолжить.Select your User Email Address, enter your Common Name value, make sure that you specify Saved to disk, and then select Continue. Оставьте поле Адрес электронной почты ЦС пустым, так как оно является необязательным.Leave CA Email Address blank as it isn't required.

    Требуемые сведения о сертификате

  4. Задайте имя CSR-файлу в поле Сохранить как, выберите расположение в поле Где и нажмите кнопку Сохранить.Enter a name for the CSR file in Save As, select the location in Where, and then select Save.

    Выбор имени файла для сертификата

    При этом CSR-файл сохраняется в выбранном месте.This action saves the CSR file in the selected location. Расположением по умолчанию является рабочий стол.The default location is Desktop. Запомните расположение, выбранное для файла.Remember the location chosen for the file.

Теперь вам нужно зарегистрировать приложение в Apple, включить push-уведомления и передать экспортированный CSR-файл для создания сертификата push-уведомлений.Next, register your app with Apple, enable push notifications, and upload the exported CSR to create a push certificate.

Регистрация приложения для работы с push-уведомлениямиRegister your app for push notifications

Чтобы отправлять push-уведомления в приложение iOS, зарегистрируйте приложение в системе Apple, а также зарегистрируйте его для получения push-уведомлений.To send push notifications to an iOS app, register your application with Apple, and also register for push notifications.

  1. Если вы еще не зарегистрировали свое приложение, перейдите на портал подготовки iOS в центре разработчиков Apple.If you haven't already registered your app, browse to the iOS Provisioning Portal at the Apple Developer Center. Войдите на портал с помощью идентификатора Apple ID и выберите Identifiers (Идентификаторы).Sign in to the portal with your Apple ID, and select Identifiers. Затем выберите + , чтобы зарегистрировать новое приложение.Then select + to register a new app.

    Страница с идентификаторами приложения на портале подготовки iOS

  2. На экране Register a New Identifier (Зарегистрировать новый идентификатор) выберите переключатель App IDs (Идентификаторы приложений).On the Register a New Identifier screen, select the App IDs radio button. Затем выберите Continue (Продолжить).Then select Continue.

    Страница регистрации нового идентификатора на портале подготовки iOS

  3. Обновите следующие три значения для нового приложения и нажмите кнопку Continue (Продолжить).Update the following three values for your new app, and then select Continue:

    • Описание: Введите описательное имя для приложения.Description: Type a descriptive name for your app.

    • Bundle ID (Идентификатор пакета). Введите идентификатор пакета в форму Organization Identifier.Product Name (Идентификатор организации.Имя продукта), как описано в руководстве по распространению приложения.Bundle ID: Enter a Bundle ID of the form Organization Identifier.Product Name as mentioned in the App Distribution Guide. Значения Organization Identifier (Идентификатор организации) и Product Name (Имя продукта) должны соответствовать идентификатору организации и имени продукта, указанным при создании проекта Xcode.The Organization Identifier and Product Name values must match the organization identifier and product name you use when you create your Xcode project. На следующем снимке экрана значение NotificationHubs используется как идентификатор организации, а значение GetStarted — как название продукта.In the following screenshot, the NotificationHubs value is used as an organization identifier and the GetStarted value is used as the product name. Убедитесь, что значение Bundle Identifier (Идентификатор пакета) совпадает со значением из проекта Xcode, чтобы в Xcode использовался правильный профиль публикации.Make sure the Bundle Identifier value matches the value in your Xcode project, so that Xcode uses the correct publishing profile.

      Страница регистрации идентификатора приложения на портале подготовки iOS

    • Push-уведомления. Проверьте опцию Push Notifications (Push-уведомления) в разделе Capabilities (Возможности).Push Notifications: Check the Push Notifications option in the Capabilities section.

      Форма для регистрации нового идентификатора приложения

      При этом будет создан идентификатор вашего приложения, а также запрошено подтверждение информации.This action generates your App ID and requests that you confirm the information. Выберите Continue (Продолжить), а затем нажмите Register (Зарегистрировать), чтобы подтвердить новый идентификатор приложения.Select Continue, then select Register to confirm the new App ID.

      Подтверждение нового идентификатора приложения

      После выбора Register (Зарегистрировать) вы увидите новый идентификатор приложения в виде элемента строки на странице Certificates, Identifiers & Profiles (Сертификаты, идентификаторы и профили).After you select Register, you see the new App ID as a line item in the Certificates, Identifiers & Profiles page.

  4. На странице Certificates, Identifiers & Profiles (Сертификаты, идентификаторы и профили) в разделе Identifiers (Идентификаторы) перейдите к только что созданному элементу строки идентификатора приложения и выберите соответствующую строку, чтобы отобразить окно Edit your App ID Configuration (Изменить конфигурацию идентификатора приложения).In the Certificates, Identifiers & Profiles page, under Identifiers, locate the App ID line item that you just created, and select its row to display the Edit your App ID Configuration screen.

Создание сертификата для Центров уведомленийCreating a Certificate for Notification Hubs

Сертификат нужен для того, чтобы центр уведомлений мог работать с APNs.A certificate is required to enable the notification hub to work with APNS. Создать его можно двумя способами:This can be done in one of two ways:

  1. Создайте сертификат .p12, который можно отправить прямо в концентратор уведомлений.Create a .p12 that can be uploaded directly to Notification Hub.
  2. Создайте сертификат .p8, который можно использовать для проверки подлинности на основе токена (новый подход).Create a .p8 that can be used for token-based authentication (the newer approach).

Новый подход имеет ряд преимуществ по сравнению с подходом на основе сертификатов (см. сведения о проверке подлинности на основе токена (HTTP/2) для APNs).The newer approach has a number of benefits (compared to using certificates) as documented in Token-based (HTTP/2) authentication for APNS. В этой статье приводятся инструкции, применимые в рамках обоих подходов.However, steps have been provided for both approaches.

Вариант 1. Создание сертификата .p12 службы push-уведомлений, который можно отправить прямо в концентратор уведомленийOPTION 1: Creating a .p12 push certificate that can be uploaded directly to Notification Hub

  1. Прокрутите вниз до отмеченной опции Push Notifications (Push-уведомления), а затем выберите Configure (Настроить), чтобы создать сертификат.Scroll down to the checked Push Notifications option, and then select Configure to create the certificate.

    Страница изменения идентификатора приложения

  2. Откроется окно Apple Push Notification service SSL Certificates (SSL-сертификаты службы push-уведомлений Apple).The Apple Push Notification service SSL Certificates window appears. Нажмите кнопку Create Certificate (Создать сертификат) в разделе Development SSL Certificate (SSL-сертификат разработки).Select the Create Certificate button under the Development SSL Certificate section.

    Кнопка создания сертификата для идентификатора приложения

    Появится экран Create a new Certificate (Создать новый сертификат).The Create a new Certificate screen is displayed.

    Примечание

    В этом руководстве применяется сертификат разработки, который приложение будет использовать для создания уникального маркера устройства.This tutorial uses a development certificate, which your app uses to generate a unique device token. Тот же процесс используется при регистрации сертификата производства.The same process is used when registering a production certificate. Только убедитесь, что при отправке уведомлений используется тот же тип сертификата.Just make sure that you use the same certificate type when sending notifications.

  3. Нажмите Choose File (Выбрать файл), перейдите к папке, в которой сохранен CSR-файл, созданный в первом задании, и дважды щелкните по имени сертификата, чтобы загрузить его.Select Choose File, browse to the location where you saved the CSR file from the first task, and then double-click the certificate name to load it. Затем выберите Continue (Продолжить).Then select Continue.

  4. После того как сертификат будет создан на портале, нажмите кнопку Download (Скачать).After the portal creates the certificate, select the Download button. Сохраните сертификат и запомните расположение, в котором он сохранен.Save the certificate, and remember the location to which it's saved.

    Страница скачивания созданного сертификата

    При этом сертификат будет скачан и сохранен на вашем компьютере в папке Загрузки.The certificate is downloaded and saved to your computer in your Downloads folder.

    Поиск файла сертификата в папке "Загрузки"

    Примечание

    Скачанному сертификату разработки по умолчанию задано имя aps_development.cer.By default, the downloaded development certificate is named aps_development.cer.

  5. Дважды щелкните скачанный сертификат push-уведомлений aps_development.cer.Double-click the downloaded push certificate aps_development.cer. При этом новый сертификат устанавливается в Keychain, как на следующем изображении.This action installs the new certificate in the Keychain, as shown in the following image:

    Список сертификатов Keychain Access с новым сертификатом

    Примечание

    Имя вашего сертификата может отличаться, но оно будет начинаться с префикса Apple Development iOS Push Services.Although the name in your certificate might be different, the name will be prefixed with Apple Development iOS Push Services.

  6. В программе Keychain Access щелкните правой кнопкой мыши новый сертификат push-уведомлений, созданный в категории Certificates (Сертификаты).In Keychain Access, right-click the new push certificate that you created in the Certificates category. Щелкните Export (Экспорт), укажите имя файла, выберите формат P12 и нажмите кнопку Save (Сохранить).Select Export, name the file, select the .p12 format, and then select Save.

    Экспорт сертификата в формате р12

    Вы можете выбрать защиту сертификата с помощью пароля, но это необязательно.You can choose to protect the certificate with a password, but this is optional. Нажмите кнопку ОК, если хотите обойти создание пароля.Click OK if you want to bypass password creation. Запишите имя файла и расположение экспортируемого сертификата в формате P12.Make a note of the file name and location of the exported .p12 certificate. Они нужны для аутентификации с помощью APNs.They are used to enable authentication with APNs.

    Примечание

    Имя файла в формате P12 и его расположение могут отличаться от изображенных в этом учебнике.Your .p12 file name and location might be different than what is pictured in this tutorial.

Вариант 2. Создание сертификата .p8, который можно использовать для проверки подлинности на основе токенаOPTION 2: Creating a .p8 certificate that can be used for token-based authentication

  1. Запишите следующие значения:Make note of the following details:

    • значение App ID Prefix (Префикс идентификатора приложения) — это Team ID (Идентификатор команды);App ID Prefix (this is a Team ID)
    • значение Bundle ID (Идентификатор пакета).Bundle ID
  2. Вернитесь на страницу Certificates, Identifiers & Profiles (Сертификаты, идентификаторы и профили), щелкните Keys (Ключи).Back in Certificates, Identifiers & Profiles, click Keys.

    Примечание

    Если вы уже настроили ключ для APNs, можете повторно использовать сертификат .p8, который вы скачали после его создания.If you already have a key configured for APNS, you can re-use the .p8 certificate that you downloaded right after it was created. В таком случае можно пропустить шаги 35.If so, you can ignore steps 3 through 5.

  3. Чтобы создать ключ, нажмите кнопку + (кнопка Create a key (Создать ключ)).Click the + button (or the Create a key button) to create a new key.

  4. Укажите подходящее значение в поле Key Name (Имя ключа), установите флажок Apple Push Notifications service (APNs) (Служба push-уведомлений Apple (APNs)), щелкните Continue (Продолжить) и на следующем экране нажмите кнопку Register (Зарегистрировать).Provide a suitable Key Name value, then check the Apple Push Notifications service (APNs) option, and then click Continue, followed by Register on the next screen.

  5. Щелкните Download (Скачать), переместите файл с расширением .p8 (с префиксом AuthKey_ ) в защищенный локальный каталог и нажмите кнопку Готово.Click Download and then move the .p8 file (prefixed with AuthKey_) to a secure local directory, then click Done.

    Примечание

    Обязательно сохраните файл с расширением .p8 в безопасном месте и сохраните его резервную копию.Be sure to keep your .p8 file in a secure place (and save a backup). Скачав ключ один раз, вы не сможете скачать его повторно, так как копия ключа удаляется с сервера.After downloading your key, it cannot be re-downloaded as the server copy is removed.

  6. В разделе Ключи щелкните имя ключа, который вы только что создали, или имя существующего ключа, если вы решили использовать его.On Keys, click on the key that you just created (or an existing key if you have chosen to use that instead).

  7. Запишите значение Key ID (Идентификатор ключа).Make note of the Key ID value.

  8. Откройте файл сертификата с расширением .p8 в подходящем приложении, например Visual Studio Code, и запишите значение ключа.Open your .p8 certificate in a suitable application of your choice such as Visual Studio Code then make note of the key value. Это значение находится между строками -----BEGIN PRIVATE KEY----- и -----END PRIVATE KEY----- .This is the value between -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY----- .

    -----BEGIN PRIVATE KEY-----
    <key_value>
    -----END PRIVATE KEY-----
    

    Примечание

    Это значение токена, которое понадобится позже для настройки концентратора уведомлений.This is the token value that will be used later to configure Notification Hub.

По завершении этих шагов у вас должны быть следующие сведения, которые вы будете использовать для настройки концентратора уведомлений на основе сведений APNs:At the end of these steps you should have the following information for use later in Configure your notification hub with APNs information:

  • идентификатор команды (см. шаг 1);Team ID (see step 1)
  • идентификатор пакета (см. шаг 1);Bundle ID (see step 1)
  • идентификатор ключа (см. шаг 7);Key ID (see step 7)
  • значение токена, то есть значение ключа из файла с расширением .p8 (см. шаг 8).Token value i.e. the .p8 key value (see step 8)

Создание профиля подготовки для приложенияCreate a provisioning profile for the app

  1. Вернитесь на портал подготовки iOS, выберите Certificates, Identifiers & Profiles (Сертификаты, идентификаторы и профили), нажмите Profiles (Профили) в меню слева, а затем выберите + , чтобы создать новый профиль.Return to the iOS Provisioning Portal, select Certificates, Identifiers & Profiles, select Profiles from the left menu, and then select + to create a new profile. Откроется окно Register a New Provisioning Profile (Зарегистрировать новый профиль подготовки).The Register a New Provisioning Profile screen appears.

  2. Выберите iOS App Development (Разработка приложений для iOS) в разделе Development (Разработка) в качестве типа профиля подготовки и нажмите кнопку Continue (Продолжить).Select iOS App Development under Development as the provisioning profile type, and then select Continue.

    Список с профилем подготовки

  3. Затем в раскрывающемся списке App ID (Идентификатор приложения) выберите созданный идентификатор приложения и нажмите кнопку Continue (Продолжить).Next, select the app ID you created from the App ID drop-down list, and select Continue.

    Выбор идентификатора приложения

  4. В окне Select certificates (Выбор сертификатов) выберите сертификат для разработки, используемый для подписывания кода, и нажмите кнопку Continue (Продолжить).In the Select certificates window, select the development certificate that you use for code signing, and select Continue. Это не созданный сертификат push-уведомлений.This certificate isn't the push certificate you created. Если он не существует, создайте его.If one does not exist, you must create it. Если сертификат существует, перейдите к следующему шагу.If a certificate does exist, skip to the next step. Выполните приведенные ниже действия, чтобы создать сертификат разработки, если он не существует.To create a development certificate if one does not exist:

    1. Если вы видите No Certificates are available (Нет доступных сертификатов), выберите Create Certificate (Создать сертификат).If you see No Certificates are available, select Create Certificate.
    2. В разделе Software (Программное обеспечение) выберите Apple Development (Разработка Apple).In the Software section, select Apple Development. Затем выберите Continue (Продолжить).Then select Continue.
    3. Перейдите к экрану Create a new Certificate (Создать новый сертификат) и нажмите Choose File (Выбрать файл).In the Create a New Certificate screen, select Choose File.
    4. Перейдите к сертификату Certificate Signing Request (Запрос на подпись сертификата), который вы создали ранее, выберите его, а затем нажмите Open (Открыть).Browse to the Certificate Signing Request certificate you created earlier, select it, and then select Open.
    5. Выберите Continue (Продолжить).Select Continue.
    6. Скачайте сертификат разработки и запомните расположение, в котором он сохранен.Download the development certificate, and remember the location to which it's saved.
  5. Вернитесь на страницу Certificates, Identifiers & Profiles (Сертификаты, идентификаторы и профили), нажмите Profiles (Профили) в меню слева, а затем + , чтобы создать новый профиль.Return to the Certificates, Identifiers & Profiles page, select Profiles from the left menu, and then select + to create a new profile. Откроется окно Register a New Provisioning Profile (Зарегистрировать новый профиль подготовки).The Register a New Provisioning Profile screen appears.

  6. В окне Select certificates (Выбор сертификатов) выберите сертификат разработки, который вы только что создали.In the Select certificates window, select the development certificate that you just created. Затем выберите Continue (Продолжить).Then select Continue.

  7. Затем выберите устройства для тестирования и нажмите кнопку Continue (Продолжить).Next, select the devices to use for testing, and select Continue.

  8. Наконец, выберите имя профиля в поле Provisioning Profile Name (Имя профиля подготовки) и нажмите кнопку Generate (Создать).Finally, choose a name for the profile in Provisioning Profile Name, and select Generate.

    Выбор имени профиля подготовки

  9. После создания нового профиля подготовки выберите Download (Скачать).When the new provisioning profile is created, select Download. Запомните расположение, в котором он сохранен.Remember the location to which it's saved.

  10. Перейдите в расположение профиля подготовки и дважды щелкните его, чтобы установить его на компьютере разработки Xcode.Browse to the location of the provisioning profile, and then double-click it to install it on your Xcode development machine.

Создание концентратора уведомленийCreate a notification hub

В этом разделе показано, как создать концентратор уведомлений и настроить проверку подлинности с помощью APNs, используя ранее созданный сертификат push-уведомлений (файл .p12) или проверку подлинности на основе токена.In this section, you create a notification hub and configure authentication with APNs by using either the .p12 push certificate or token-based authentication. Если вы хотите использовать уже созданный центр уведомлений, перейдите к шагу 5.If you want to use a notification hub that you've already created, you can skip to step 5.

  1. Войдите на портал Azure.Sign in to the Azure portal.

  2. Выберите Все службы в меню слева и щелкните Центры уведомлений в разделе Мобильный.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. После добавления Центров уведомлений в Избранное выберите их в меню слева.After you add Notification Hubs to FAVORITES, select it on the left menu.

    Портал Azure. Выбор Центров уведомлений

  3. На странице Центры уведомлений выберите Добавить на панели инструментов.On the Notification Hubs page, select Add on the toolbar.

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

  4. На странице Концентратор уведомлений выполните следующие действия: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: настройка свойств концентратора уведомлений

  5. Последовательно выберите Уведомления (значок колокольчика) и Перейти к ресурсу.Select Notifications (the bell icon), and then select Go to resource. Вы также можете обновить список на странице Центры уведомлений и выбрать свой центр.You can also refresh the list on the Notification Hubs page and select your hub.

    Портал Azure: кнопка "Перейти к ресурсу"

  6. Выберите Политики доступа в списке.Select Access Policies from the list. Обратите внимание, что станут доступны две строки подключения.Note that the two connection strings are available to you. Они потребуются позже для обработки push-уведомлений.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: строки подключения к концентратору уведомлений

Добавление данных об APNs в центр уведомленийConfigure your notification hub with APNs information

В разделе Notification Services выберите Apple (APNS) , а затем выполните действия в зависимости от способа, выбранного ранее на этапе создания сертификата для Центров уведомлений.Under Notification Services, select Apple (APNS) then follow the appropriate steps based on the approach you chose previously in the Creating a Certificate for Notification Hubs section.

Примечание

Если вы создаете приложение с помощью App Store или специального профиля распространения, укажите для параметра Режим приложения значение Производство.If you build your app with App Store or Ad-Hoc distribution profile, use the Production for Application Mode. Это позволит устройству отправлять push-уведомления пользователям, которые приобрели приложение в магазине.This will allow your device to send push notifications to users who purchased your app from the store.

Вариант 1. Использование сертификата .p12 для службы push-уведомленийOPTION 1: Using a .p12 push certificate

  1. Выберите Сертификат.Select Certificate.

  2. Щелкните значок файла.Select the file icon.

  3. Выберите экспортированный ранее файл с расширением .p12, а затем нажмите Open (Открыть).Select the .p12 file that you exported earlier, and then select Open.

  4. При необходимости укажите пароль.If required, specify the correct password.

  5. Выберите режим Песочница.Select Sandbox mode.

    Настройка сертификации APNs на портале Azure

  6. Щелкните Сохранить.Select Save.

Вариант 2. Использование проверки подлинности на основе токенаOPTION 2: Using token-based authentication

  1. Выберите Токен.Select Token.

  2. Введите следующие значения, которые вы получили ранее:Enter the following values that you acquired earlier:

    • идентификатор ключа;Key ID
    • идентификатор пакета;Bundle ID
    • идентификатор команды;Team ID
    • токен.Token
  3. Выберите Песочница.Choose Sandbox

  4. Щелкните Сохранить.Select Save.

Вы добавили данные об APNs в центр уведомлений.You've now configured your notification hub with APNs. У вас также есть строки подключения для регистрации приложения и отправки push-уведомлений.You also have the connection strings to register your app and send push notifications.

Подключение приложения к центру уведомленийConnect your app to the notification hub

Создание нового проектаCreate a new project

  1. В Visual Studio создайте проект iOS и выберите шаблон Приложение одного представления, а затем нажмите кнопку Далее.In Visual Studio, create a new iOS project and select the Single View App template, and click Next

    Выбор типа приложения в Visual Studio

  2. Введите имя приложения и идентификатор организации, затем нажмите кнопку Далее и Создать.Enter your App Name and Organization identifier, then click Next, then Create

  3. В представлении решения дважды щелкните Info.plist и убедитесь, что идентификатор пакета соответствует указанному при создании профиля подготовки. Для этого просмотрите сведения в разделе Идентификатор.From the Solution view, double-click Info.plist and under Identity make sure your Bundle Identifier matches the one used when creating your provisioning profile. В разделе Подписи укажите учетную запись разработчика в поле Команда, установите флажок Automatically manage signing (Автоматическое управление подписями) и убедитесь, что сертификат для подписи и профиль подготовки заданы автоматически.Under Signing ensure that your Developer account is selected under Team, "Automatically manage signing" is selected and your Signing Certificate and Provisioning Profile are automatically selected.

    Настройка приложения iOS в Visual Studio

  4. В представлении "Решение" дважды щелкните файл Entitlements.plist и убедитесь, что установлен флажок Включить push-уведомления.From the Solution view, double-click the Entitlements.plist and ensure that Enable Push Notifications is checked.

    Настройка прав iOS в Visual Studio

  5. Добавьте пакет службы сообщений Azure.Add the Azure Messaging package. В представлении решения щелкните проект правой кнопкой мыши и последовательно выберите Добавить > Add NuGet Packages (Добавить пакеты NuGet).In the Solution view, right-click the project and select Add > Add NuGet Packages. Выполните поиск пакета Xamarin.Azure.NotificationHubs.iOS и добавьте его в проект.Search for Xamarin.Azure.NotificationHubs.iOS and add the package to your project.

  6. Добавьте новый файл в класс и присвойте ему имя Constants.cs. Добавьте указанные далее переменные и замените буквенные заполнители строк на hubname и DefaultListenSharedAccessSignature, записанные ранее.Add a new file to your class, name it Constants.cs and add the following variables and replace the string literal placeholders with the hubname and the DefaultListenSharedAccessSignature noted earlier.

    // Azure app-specific connection string and hub path
    public const string ListenConnectionString = "<Azure DefaultListenSharedAccess Connection String>";
    public const string NotificationHubName = "<Azure Notification Hub Name>";
    
  7. В AppDelegate.cs добавьте следующую инструкцию.In AppDelegate.cs, add the following using statement:

    using WindowsAzure.Messaging.NotificationHubs;
    using UserNotifications
    
  8. Создайте реализацию MSNotificationHubDelegate в AppDelegate.cs:Create an implementation of the MSNotificationHubDelegate in the AppDelegate.cs:

    public class AzureNotificationHubListener : MSNotificationHubDelegate
    {
        public override void DidReceivePushNotification(MSNotificationHub notificationHub, MSNotificationHubMessage message)
        {
    
        }
    }
    
  9. В файле AppDelegate.cs обновите метод FinishedLaunching(), как в приведенном ниже коде:In AppDelegate.cs, update FinishedLaunching() to match the following code:

    public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
    {
        // Set the Message listener
        MSNotificationHub.SetDelegate(new AzureNotificationHubListener());
    
        // Start the SDK
        MSNotificationHub.Start(ListenConnectionString, NotificationHubName);
    
        return true;
    }
    
  10. В файле AppDelegate.cs реализуйте метод DidReceivePushNotification для класса AzureNotificationHubListener:In AppDelegate.cs, implement the DidReceivePushNotification method for the AzureNotificationHubListener class:

    public override void DidReceivePushNotification(MSNotificationHub notificationHub, MSNotificationHubMessage message)
    {
        // This sample assumes { aps: { alert: { title: "Hello", body: "World" } } }
        var alertTitle = message.Title ?? "Notification";
        var alertBody = message.Body;
    
        var myAlert = UIAlertController.Create(alertTitle, alertBody, UIAlertControllerStyle.Alert);
        myAlert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));
        UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(myAlert, true, null);
    }
    
  11. Запустите приложение на устройстве.Run the app on your device.

Отправка тестовых push-уведомленийSend test push notifications

Можно проверить, поступают ли в приложение уведомления, с помощью параметра Тестовая отправка на Портал Azure.You can test receiving notifications in your app with the Test Send option in the Azure portal. Этот параметр позволяет отправить на устройство тестовое push-уведомление.It sends a test push notification to your device.

Портал Azure — тестовая отправка

Push-уведомления обычно отправляются во внутренней службе, например мобильных приложениях или службе ASP.NET, с помощью совместимой библиотеки.Push notifications are normally sent in a back-end service like Mobile Apps or ASP.NET using a compatible library. Если для серверной части библиотека недоступна, для отправки уведомлений также можно напрямую использовать REST API.If a library is not available for your back-end, you can also use the REST API directly to send notification messages.

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

В рамках этого руководства вы отправили широковещательные уведомления на все устройства iOS, зарегистрированные в серверной части.In this tutorial, you sent broadcast notifications to all your iOS devices registered with the backend. Сведения о том, как отправлять push-уведомления на конкретные устройства iOS, см. в следующем руководстве:To learn how to push notifications to specific iOS devices, advance to the following tutorial: