Advertisement
  1. Code
  2. iOS SDK

Простые push-уведомления с back4app для iOS

by
Read Time:9 minsLanguages:

Russian (Pусский) translation by Ellen Nelson (you can also view the original English article)

Введение

В этом уроке я расскажу вам, как легко реализовать push-уведомления в приложении iOS с помощью сторонней облачной службы. Мы начнем с рассмотрения необходимых шагов для любого приложения iOS для реализации push-уведомлений, а затем перейдём к использованию back4app (на основе платформы Parse) в качестве нашего back-end сервиса.

Для этого урока требуется, чтобы вы запустили хотя бы Xcode 8 с iOS 10 SDK. Это связано с тем, что мы будем использовать новую структуру UserNotifications для обработки получаемых уведомлений в приложении. Если вы хотите узнать больше об этой структуре, вы можете посмотреть мой учебник, по этой теме:

Вам также понадобится физическое устройство iOS для запуска вашего приложения. Это связано с тем, что симулятор iOS не поддерживает push-уведомления.

1. Настройка приложения iOS

Для начала откройте Xcode и создайте новый проект на основе шаблона приложения iOS > Application > Single View Application:

Application TemplateApplication TemplateApplication Template

На следующем экране, как только вы заполнили всю информацию (вы можете использовать ту же информацию, что и я), уделите внимание Bundle Identifier, который нам понадобится позже:

App Info and Bundle IdentifierApp Info and Bundle IdentifierApp Info and Bundle Identifier

Как только Xcode создаст ваш проект, откройте файл AppDelegate.swift и добавьте следующую строку кода вверху:

Затем, замените метод application(_:didFinishLaunchingWithOptions:) на следующее:

С помощью этого кода мы запрашиваем разрешение пользователя показывать уведомления с использованием фреймворка UserNotifications. Если пользователь принимает это, мы регистрируемся для удаленных (push) уведомлений, вызывая метод registerForRemoteNotifications.

На последнем шаге настроек приложения, нажмите на название вашего проекта в верхней части File Navigator в Xcode и перейдите на вкладку Capabilities. На этом экране включите переключатель Push Notifications, чтобы добавить правильные права в ваше приложение:

Push Notifications EntitlementsPush Notifications EntitlementsPush Notifications Entitlements

2. Настройка сертификата

Служба уведомления Apple Push

На базовом уровне система push-уведомлений для iOS работает следующим образом:

  • Сторонний сервер отправляет служебную информацию уведомления в службу Apple Push Notification (APN).
  • APN проверяет информацию, чтобы проверить, что она происходит из правильного источника.
  • Если это действительно так, тогда APN перенаправляет информацию на правильное устройство iOS.

Чтобы правильно аутентифицировать информацию уведомления, вы должны создать подписной сертификат. Чтобы начать процесс создания этого сертификата, вам нужно будет войти в систему с вашим Apple ID на веб-сайте разработчиков Apple.

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

После того, как вы вошли в систему, нажмите Certificates, IDs & Profiles на левой боковой панели:

Developer Portal SidebarDeveloper Portal SidebarDeveloper Portal Sidebar

На следующем экране выберите Identifiers > App IDs на левой боковой панели, а затем нажмите кнопку плюс в верхнем правом углу:

Add New iOS App IDAdd New iOS App IDAdd New iOS App ID

При создании идентификатора вашего приложения вы можете ввести всё, что хотите в название — Name, в разделе App ID Description. В разделе App ID Suffix выберите параметр Explicit App ID и введите идентификатор пакета, который вы сделали при создании проекта, в поле Bundle ID. Наконец, в разделе App Services убедитесь, что вы отметили флажок для включения Push Notifications. После того, как вы введёте всю информацию, прокрутите страницу вниз и нажмите кнопку Continue.

Теперь вам будет представлен просмотр вашего идентификатора приложения, как показано на скриншоте ниже:

App ID OverviewApp ID OverviewApp ID Overview

Убедитесь, что вся информация верна (на этом этапе Push Notifications должны показываться как Configurable), а затем кликните Register в нижней части экрана.

Создание сертификатов

Перейдите в Certificates на левой боковой панели и снова нажмите кнопку плюс в правом верхнем углу. На следующем экране в разделе Development выберите параметр Apple Push Notification service SSL (Sandbox) и нажмите кнопку Continue внизу.

На следующем экране выберите идентификатор вашего приложения в раскрывающемся меню и нажмите Continue.

Если у вас ещё нет файла сертификата на подпись (CSR), следуйте инструкциям на следующем экране, чтобы создать его. После того, как вы получите CSR, вы можете перейти к следующему экрану и загрузить его.

Как только ваш сертификат будет создан, нажмите кнопку Download, а затем откройте файл с помощью приложения Keychain Access на вашем компьютере. Если вас спросят, к какой связке ключей добавить сертификат, выберите параметр login.

Там же в приложении Keychain Access выберите параметр Certificates в нижней части левой боковой панели:

Keychain Access SidebarKeychain Access SidebarKeychain Access Sidebar

Теперь вам нужно будет найти сертификат, который вы только что сделали; он будет иметь имя Apple Development IOS Push Services: { Bundle ID }. После того как вы нашли свой сертификат, кликните по нему правой кнопкой мыши и выберите вариант Export. В появившемся всплывающем окне вы можете указать который хотите файл, но убедитесь, что в качестве параметра File Format установлено значение Personal Information Exchange (.p12):

Certificate Exporting OptionsCertificate Exporting OptionsCertificate Exporting Options

При экспорте сертификата не указывайте пароль для файла p12. Это связано с тем, что back4app требует наличия файла сертификата без защиты паролем.

Служба Apple Push Notification имеет две отдельные среды: одну для приложений в разработке и одну для выпущенных приложений.

Пока что, мы создали сертификат, который будет использоваться в среде разработки, которая будет работать при тестировании вашего приложения через Xcode.

При отправке приложения в App Store вам нужно будет создать производственный сертификат. Чтобы это сделать, повторите шаги, которые мы прошли в разделе Создание сертификатов в этом уроке, но выберите Apple Push Notification service SSL (Sandbox & Production). Обратите внимание, что в Keychain Access имя сертификата будет: Apple Push Services: {Bundle ID}.

Обратите внимание, что вам может не понадобиться создавать два отдельных сертификата, в зависимости от того, какую реализацию push-уведомления вы используете. С начала этого года Apple разрешила создание сертификата двойного назначения — типаа Apple Push Notification service SSL (Sandbox & Production), который можно использовать для подключения в обоих средах. К сожалению, некоторые службы, такие как back4app, ещё не обновились для использования этих новых сертификатов и требуют отдельный для каждой среды.

3. Настройка back4app

Для этого урока мы будем использовать back4app для обеспечения серверной части наших push-уведомлений. back4app это сервис, который обеспечивает простой в использовании и бесплатный (с ограничениями) интерфейс для вашего приложения. Он работает как хостинг-сервер для проекта Parse Server.

Чтобы настроить back4app, вам нужно будет вернуться на back4app.com и зарегистрировать учетную запись, если у вас её ещё нет.

После того, как вы зарегистрируетесь, вы попадете на пустой экран, где будут показаны все ваши приложения. Чтобы создать новый, нажмите кнопку Build new Parse app в верхнем левом углу. На следующем экране введите название вашего приложения и нажмите Next.

После того, как ваше приложение будет создано, вы попадете на экран с целым рядом разных идентификаторов и ключей. Те, что мы должны принять к сведению — App Id, Parse API Address и Client Key. После того, как вы их скопируете, вы можете нажать кнопку Close в нижней части страницы.

Теперь вы должны быть на главном экране панели инструментов вашего приложения. Чтобы настроить реализацию push-уведомлений, перейдите на страницу iOS Push Notification Settings. Здесь нажмите кнопку Choose File, чтобы выбрать и загрузите файл .p12, который вы создали ранее. Нажмите Send и ваш идентификатор пакета должен появиться в списке, как показано на следующем снимке с экрана:

Uploaded Certificate InformationUploaded Certificate InformationUploaded Certificate Information

4. Настройка Parse SDK

В качестве последнего этапа нашей настройки нам нужно загрузить и добавить Parse SDK в наше приложение. Для этого вы можете выполнить первые три шага руководства iOS Quickstart от back4app.

После завершения настройки Parse SDK и добавления необходимого кода конфигурации в application(_:didFinishLaunchingWithOptions:) добавьте следующий метод в класс AppDelegate:

Этот метод будет вызван, если пользователь принимает запрос вашего приложения, чтобы показать уведомления. В частности, метод registerForRemoteNotifications, который мы вызывали ранее в делегировании нашего приложения, вызовет метод application(_:didRegisterForRemoteNotificationsWithDeviceToken:), как только завершится его обработка. В нашей реализации этого метода мы просто получаем данные устройства и загружаем его в приложение parse back4app.

5. Отправка уведомления

Теперь, когда все наши настройки завершены, вы можете создавать и запускать приложение на устройстве iOS. Как только ваше приложение откроется, вы увидите следующее предупреждение:

Notification Authorisation AlertNotification Authorisation AlertNotification Authorisation Alert

Коснитесь кнопки Allow и ваше приложение сможет отправлять удаленные уведомления.

Теперь вы можете перейти на панель инструментов Parse Dashboard вашего приложения. После того, как вы попадёте в панель инструментов вашего приложения, нажмите Core на левой боковой панели, если оно ещë не выбрано. После того, как развернётся раздел Core вы сможете увидеть общее количество установок (Installation) вашего приложения. На данный момент там должно быть 1, как на этом снимке экрана:

Parse Dashboard Installation Object CountParse Dashboard Installation Object CountParse Dashboard Installation Object Count

Если это число равно 0, вам нужно будет вернуться назад и убедиться, что вы правильно скопировали весь код в свой класс AppDelegate, включая идентификатор приложения back4app и ключ клиента.

Убедившись, что ваше приложение сохранило данные установки в Parse, перейдите в раздел Push на левой боковой панели Parse Dashboard. Сейчас вы должны находиться на экране, где вы можете отправить свое собственное уведомление. На данный момент вы можете оставить все настройки такими, какие они есть и просто ввести специальное сообщение под заголовком Write your message.

Когда вы будете готовы, заблокируйте экран вашего iOS устройства, а затем нажмите кнопку Send push в нижнем правом углу Parse Dashboard. Через несколько секунд на экране блокировки появится ваше push-уведомление:

Successful Push NotificationSuccessful Push NotificationSuccessful Push Notification

Вывод

Поздравляю! Вы только что успешно настроили push-уведомления для iOS приложения! Как вы видите, помимо утомительного создания SSL-сертификатов, использование службы, такой как back4app, упрощает внедрение push-уведомлений.

Конечно, помимо back4app есть другие сервисы, которые вы можете использовать для push-уведомлений, включая Backendless, Firebase от Google и даже CloudKit от самого Apple. Я выбрал back4app для использования в этом уроке, поскольку большинство настроек push-уведомлений аналогичны. Он также предлагает множество других отличных бесплатных функций, которые любое приложение может использовать.

Как всегда, пожалуйста, оставляйте свои комментарии и отзывы в разделе комментариев ниже. И ознакомьтесь с некоторыми из наших других руководств по использованию облачных back-end служб для мобильных приложений!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.