UrbanAirship — push без создания сервера

788087df43904c3db4aef2ffcec813dc.png

Компания UrbanAirship помогает разработчикам с 2009 г. Их платформа позволяет реализовать отправку push-уведомлений на большинстве мобильных платформ: iOS, Android, BlackBerry, Windows, PhoneGap. Сегодня мы поговорим об основных тонкостях использования UrbanAirship и возможностях библиотеки для платформы iOS.
UrbanAirship полезен и разработчикам, и клиентам, которые не планировали создавать серверную часть своего приложения, но хотели бы посылать пользователям push-уведомления. В былые времена сервис был бесплатным и потому более привлекательным для программистов-новичков. Но 31 декабря 2014 г. компания устроила пользователям весьма своеобразный новогодний подарок — trial-версия стала доступна только на 45 дней. Цена платной версии не публикуется, т. к. устанавливается индивидуально для клиента.

Поговаривают, что получается что-то в районе $ 0.001 за одно push-уведомление. Несмотря на цену, сервис остается крайне популярным, благодаря своему удобству и богатому функционалу.

Если вам все же посчастливилось работать с UrbanAirship, первым делом стоит авторизоваться и создать свое приложение в go.urbanairship.com/apps. Меню тут простое и понятное, поэтому после нажатия Apps->Add New App просто следуйте инструкции. UrbanAirship позволяет создавать для каждого приложения девелопмент- и продакшн-версии. Это упрощает разработку и тестирование приложения до публикации в AppStore. Статус приложения определяется с помощью файла AirshipConfig.plist, который появится в вашем проекте после настройки и интеграции с UrbanAirship SDK.

Следующий важный этап — настройка сервисов вашего приложения на портале UrbanAirship. Делается это довольно просто. Сперва вы должны создать push (APNS) сертификаты (development and distribution) для вашего приложения и сделать экспорт ключей из Keychain.

Тут есть один нюанс — важно правильно сделать экспорт. Выделить надо именно APNS-сертификат, а не сам ключ. В таком случае все пройдет на ура:

3e8e994121b24570b0b2e384d6890e00.png

А этот вариант выдаст 500-ю ошибку при попытке импортировать ключ в UrbanAirship.

1442e9fc10bd45b99c891f9e905b6fe5.png

Полученный экспортом из keychain ключ p12 и пароль к нему надо указать в Settings/Services вашего приложения в UrbanAirship:

9c8fb213fef14380a705a4204bf66141.png

Теперь дело за малым — осталось добавить в ваше iOS-приложение SDK. Этот процесс детально (даже с картинками) описан на сайте UrbanAirship, поэтому не будем останавливаться на этом шаге.

Перейдем непосредственно к использованию UrbanAirship. Доступно сразу два вида уведомлений: обычные push и Rich. Rich-сообщения, в отличие от обычных, содержат не только текст, но и картинки, ссылки и целые страницы контента.
Чтобы создать и отправить сообщения, нажмите самую нижнюю слева кнопку меню:

88f42965a8a24c2a95b10982b405af70.png

  • Messages — это (что не совсем очевидно) Rich push-сообщения.
  • Push Messages — обычные push-уведомления.
  • Segment — добавление сегмента аудитории, которым будет отправлено сообщение.

Создание сообщений весьма интуитивно, интерес вызывает лишь один пункт:
d8b0f48521434e5f95c34330a14da4ad.png

Т. е. отправить сообщение (кроме варианта «всем сразу») можно девайсу с определенным тегом. Тег настраивается на стороне приложения с помощью методов:

[[UAirship push] addTag:@"a_tag"];
[[UAirship push] updateRegistration];

Можно также отправить сообщение одному устройству, указав его токен, и девайсам из определенного сегмента (создание сегмента упоминалось выше).
Отправку сообщений, их получения, действия пользователя и другие подробности можно увидеть в статистике (Reports).

Кроме того, UrbanAirship позволяет с легкостью создавать view-контроллеры, которые будут содержать список всех доставленных Rich Push-уведомлений, помечать прочитанные и показывать содержимое каждого. UI и функционал этого контроллера (UAInboxMessageListController) идет в библиотеке, но может быть изменен и настроен для собственных нужд.

Заключение
Многие жалуются на высокую, в сравнении с другими сервисами (например, Parse), цену UrbanAirship. Я не занималась исследованием аналогов, но, на первый взгляд, UrbanAirship предоставляет больше возможностей и более прост в использовании.

Автор: Мария Назаренко, iOS-разработчик DataArt.

© Habrahabr.ru