- Опыт отправки Apple Push Notification через SNS сервис от Amazon и немного полезного кода
- Особенности работы с Apple push notification service
- 990x.top
- Простой компьютерный блог для души)
- Apple Push в автозагрузке — что это за программа и нужна ли она? (Apple Application Support)
- Apple Push в автозагрузке — что это такое?
- iTunes Helper — что это за программа?
- Apple Push в автозагрузке — отключать или нет?
- Механизм пуш-уведомлений для iOS и Android
- Что такое Пуш-уведомления
- Преимущества технологии пуш уведомлений
- Из чего состоит пуш-уведомление
- Статистика пуш-уведомлений
- Типы push-уведомлений
- Разница между пуш-уведомлениями на iOS и Android
- Свайпы:
- Условия по умолчанию:
- Группировка пуш-сообщений:
- Настройки push-уведомлений:
- Ключевые преимущества пуш-уведомлений
- Основные механизмы для пуш-уведомлений
- Общий принцип работы пуш-уведомлений на iOS и Android:
- Механизмы push-уведомлений iOS
- Механизмы пуш-уведомлений Android
- Кросс-платформенные механизмы для пуш-уведомлений
Опыт отправки Apple Push Notification через SNS сервис от Amazon и немного полезного кода
Теплым летним вечером, в процессе разработки очередного приложения для iOS, у меня совпало два фактора — возникла необходимость реализации Apple Push Notification (APN) и желание попробовать что-то совсем новое для меня. Идти проторенной дорогой через один из множества сервисов, предлагающих отправку APN не хотелось.
Для изобретения велосипеда был выбран Amazon Simple Notification Service (Amazon SNS). Amazon SNS — это сервис, который позволяет вам отправлять сообщения-нотификации, посредством разнообразных механизмов (APN, GCM, e-mail, SMS и т.д.).
О том, как это работает и более подробную информацию можно прочитать в документации Amazon. Я расскажу совсем немного, чтобы определиться с дальнейшей терминологией. У SNS есть два типа клиентов — публикаторы (publishers) и подписчики (subscribers). Публикаторы с подписчиками асинхронно обмениваются сообщениями (messages), которые доставляются подписчикам, посредством разнообразных механизмов. Для отправки групповых сообщений подписчики могут быть сгруппированы по темам (topics). Тогда все подписчики, подписанные на тему, получат сообщение в эту тему отправленное.
Картинка из документации Amazon:
Поскольку тема данной статьи — работа с сервисом SNS из iOS, подробно на бекенде останавливаться не будем. Скажу несколько предложений.
В рамках изобретения велосипеда бекенд был написан с использованием следующих технологий:
- Java 1.8;
- Spring Boot 1.2.4;
- Maven 3.3;
- AWS SDK for Java 1.10.1.
Я являюсь программистом на Objective C/Swift, поэтому все это добро, включая Java, я в этом проекте использовал можно сказать впервые. Проект PushSnsSender выложил на GitHub. Во-первых, может кому-нибудь пригодится; а во-вторых, был бы очень рад push-реквестам.
Данный код поднимает веб-сервис, который на ваш POST-запрос вида:
Отправит APN “Hooray!” на SNS-тему “YOUR-TOPIC”.
Как бы то ни было, не ради бекенда я затевал эту статью. Все дело в том, что механизм подписки на топик из iOS приложения несправедливо обойден вниманием в документации Amazon, а именно на нем я хочу остановиться. Возможно кому-то это сэкономит драгоценные часы времени.
Перед тем как приступить к программированию, в консоли AWS нужно выполнить следующие действия:
- активация сервиса AWS SNS;
- активация сервиса AWS Cognito;
- создание Platform Application в сервисе SNS и привязка ключей Apple для работы с APN;
- создание новой темы для сервиса SNS;
- создание Identity Pool и привязанной к нему роли для сервиса Cognito.
Я не буду описывать перечисленные выше шаги, чтобы не повторять множество уже написанных статей. Кроме того, документация Amazon по каждому сервису действительно очень подробна и хороша — разобраться не составляет труда. Приведу несколько скриншотов для общего представления.
Окно создания Platform Application:
Окно создания новой темы:
Окно создания нового Identity Pool:
Немного задержимся на сервисе Cognito. Что это и зачем он нужен?
Как вы понимаете, с вашим уютным AWS не должно быть разрешено работать кому попало. За строгую авторизацию в AWS отвечает сервис Identity and Access Management, который каждому пользователю выдает ключи авторизации. Ключи авторизации, состоящие из Access Key Id и Secret Access Key — очень интимная штука, которая при попадании в неправильные руки может причинить вашему аккаунту AWS и вашему кошельку много-много бед. Поэтому никогда и не при каких обстоятельствах не садитесь в машину к незнакомым дядям не отдавайте ключи AWS.
Вместе с этим ваше iOS приложение на телефонах пользователей должно как-то авторизовываться в AWS, чтобы подписаться на тему. Тут на помощь нам приходит сервис AWS Cognito — одной из функций которого является аутентификация пользователей и назначение им определенной роли. Работать с сервисом достаточно просто. После создания нового Identity Pool, сервис сам сгенерит вам код, который надо использовать в вашем iOS приложении.
Окно нового Identity Pool и сгенерированного кода:
Вводные операции закончены и наконец можно перейти к любимой части — написанию кода.
Для работы с сервисами Amazon из нашего iOS приложения нам потребуется AWS SDK for iOS, а точнее три компонента оттуда: AWSCore; AWSSNS и AWSCognito. Для установки воспользуемся любимым менеджером пакетов, например для CocoaPods это будет выглядеть так:
pod ‘AWSCore’, ‘
> 2.2′
pod ‘AWSCognito’, ‘
Настало время самого интересного — ответа на вопрос: “Как из нашего iOS приложения подписаться на тему SNS?” Документация Amazon предложит нам решение в виде регистрации отдельного устройство и отправки сообщения на него, что для массовой рассылки абсолютно не подходит. Поэтому после авторизации с помощью кода, сгенеренного сервисом Cognito, мы просто вызовим API сервиса SNS и подпишемся на тему вручную.
Код вызова приведен ниже:
Вот и все. После успешного запуска приложения в консоли AWS вы увидите одно авторизованное устройство в Identity Pool сервиса Cognito и ваше устройство в качестве подписчика на тему:
Экран с отоброжением устройства, подписанного на тему:
Обратите внимание на различие ключей Apple для работы с APN в среде разработки и продуктивной среде.
Файлы Objective C:
Спасибо за внимание. Надеюсь, данная статья сэкономила вам хоть сколько-нибудь времени и подтолкнула обратить внимание на такой замечательный сервис как Amazon SNS.
Источник
Особенности работы с Apple push notification service
Добрый день, уважаемые хабражители. Совсем недавно я закончил разработку apns-сервиса и хотел бы поделиться некоторыми особенностями работы с ним. Статья не является пошаговой инструкцией, а описывает трудности и подводные камни с которыми может столкнуться разработчик. Примеры кода буду приводить на Ruby, но все написанное актуально и для других платформ, в частности, PHP.
Об общих принципах работы с apns написано много статей, да и официальная документация достаточно понятна и прозрачна, поэтому перейдем сразу к делу:
Особенность номер раз — JSON
Именно в этот формат необходимо преобразовать сообщение для отправки на сервер apple, но здесь нас ждет разочарование. Казалось бы, проще всего сгенерировать сообщение с помощью встроенных функций преобразования массивов в json вот так:
Но не все так просто. Вы вдруг обнаружите, что максимальная длина текста сообщения составляет всего 40-50 символов. Почему так? Дело в том, что функция to_json в Ruby преобразует все не ASCII символы в последовательность /uXXXX, которая при упаковке сообщения занимает 4! байта. Для обхода этого ограничения необходимо формировать сообщение в обычном текстовом формате. Например, вот так:
— это аналог PHP-функции addslashes(). Если ее не применить, то сообщения со знаками препинания и некоторыми служебными символами не дойдут пользователю и будут сочтены apple как ошибочные.
Особенность номер два — обрыв соединения и обратная связь
Если при отправке очередного сообщения произошла ошибка, то apple просто разрывает связь, не дожидаясь окончания отправки всех сообщений в очереди. Но есть возможность узнать, какая именно ошибка произошла при отправке. Для этого необходимо составить сообщение особым образом и присвоить каждому уникальный номер:
После отправки каждого сообщения нужно проверить, есть ли ответ от сервера, но важно помнить, что в случае успеха сервер ничего не возвращает и если просто ждать ответа, то отправка может зависнуть. Коды ошибок описаны в официальной документации, поэтому приводить их здесь не буду. Отмечу лишь, что наиболее распространенные ошибки связаны с неправильной длиной токена или содержимого сообщения.
Особенность номер три — обратная связь
С помощью этого сервиса Apple возвращает токены устройств, с которых приложение было удалено. Многие запрашивают эту информацию при каждой отправке, но в этом нет необходимости. Достаточно обращаться к сервису раз в сутки и удалять из своей базы неактивные устройства. Пренебрегать этим сервисом тоже не стоит, т.к. за частую отправку сообщений на неактивные токены ваш сервис могут заблокировать.
Особенность номер четыре — массовая рассылка сообщений
Соединение с серверами apple устанавливается с помощью сертификата, выданного определенному приложению. Именно так Apple определяет, к какому приложению на устройстве пользователя относится отправленное уведомление. Следовательно, для отправки сообщений нескольким приложениям (а именно такая задача стояла у сервиса, разработанного мной), необходимо для каждого массива сообщений создавать отдельное соединение. Частая ошибка, совершаемая разработчиками — они пытаются отправлять сообщения небольшими партиями по 100-200 штук, каждый раз создавая и разрывая соединение. Это может быть воспринята сервером как попытка атаки и ваш сервис будет заблокирован. Чтобы избежать этого, нужно отправлять все сообщения через одно соединение, даже если их несколько десятков тысяч. И отсюда вытекает особенность номер шесть.
Особенность номер шесть — время наш враг
При большом количестве сообщений время исполнения скрипта отправки может быть достаточно велико и на большинстве серверов выполнение будет завершено по таймауту в 30 секунд. Решение — разделение логики создания и отправки сообщений. Я сделал это с помощью демона (в ROR за это отвечает gem daemons. Через веб интерфейс в базу добавляется текст сообщения и фильтр, по которому при отправке будут выбираться токены из базы, а демон каждые 10 секунд опрашивает базу на наличие новых заданий и отправляет сообщения. В такой реализации есть еще один неоспоримый плюс — мы можем настроить отложенную отправку сообщений.
Источник
990x.top
Простой компьютерный блог для души)
Apple Push в автозагрузке — что это за программа и нужна ли она? (Apple Application Support)
Приветствую всех! Продолжаем изучать непонятные вещи в компьютерном мире. В этот раз мы разберемся с программой Apple Push в автозагрузке. Я попробую узнать максимум полезной инфы. В итоге вы сможете понять — нужна ли она или от нее стоит избавиться.
Apple Push в автозагрузке — что это такое?
Проанализировав интернет пришел к тому, что существует две версии о предназначении записи в автозагрузке:
- Компонент для отправки уведомлений о запуске программ Apple, которые установлены на вашем ПК. Наиболее вероятная версия.
- Apple Push запускает процесс APSDaemon, который отвечает за беспроводную синхронизацию с устройствами Apple. Информацию нашел на одном сайте.
PS: первая версия в интернете встречается/упоминается намного чаще. В любом случае это что-то связанное с синхронизацией.
Сам компонент видимо тоже от Apple, никакой опасности из себя не представляет, если что-то и отправляет в интернет, то эта инфа анонимная, а трафика используется очень мало.
Также есть инфа, что он нужен для работы синхронизации приложения iCloud, хотя читаю, что даже если отключить в автозагрузке, то синхронизация все равно работает.
Еще одна версия. На другом сайте нахожу информацию, что запись Apple Push запускает процесс APSDaemon.exe:
PS: вообще для просмотра автозагрузки хорошо использовать прогу AnVir Task Manager. Используя ее можно посмотреть автозагрузку обычную, в реестре, задания планировщика, также отображает службы (сервисы). Плюс — в отличии от обычной автозагрузки — записи можно даже удалять!
Сам процесс запускается из этой папки:
C:\Program Files\Common Files\Apple\Apple Application Support\
Процесс APSDaemon.exe оказывается может грузить ПК, чуть ли не до 95%. И его можно отключить в автозагрузке, да, но при запуске iTunes он может появиться снова.
iTunes Helper — что это за программа?
Также у вас в автозагрузке могут быть:
- iTunes Helper — компонент, который обеспечивает автозапуск iTunes при подключении устройства. Если у вас устройства Apple нет, то можно отключить.
- Scheduling Agent — это вроде планировщик задач, правда почему он в автозагрузке — непонятно, но в интернете пишут что можно отключить. Хотя возможно что имеется ввиду VCL Scheduling Agent — компонент Delphi и C++ Builder, представляющий из себя обертку для Microsoft Task Scheduler (планировщик заданий) API. Простыми словами если вы не программист, то эта штука вам не нужна.
iTunes — это что? Это ребята медиаплеер для организации и воспроизведения музыки и фильмов, разработанный компанией Apple бесплатно для платформ macOS и Windows. То есть простой плеер, умеющий играть видео и аудио, только от компании Apple.
Apple Push в автозагрузке — отключать или нет?
Скорее всего что отключить можно. Можно даже удалить, но в обычной автозагрузке этого не сделать (msconfig), а вот в AnVir Task Manager — можно. Но перед этим лучше создать точку восстановления.
Создание точки восстановления: нажимаем Win + R > пишем control или control panel, нажимаем ОК. Откроется панель управления. Находим значок Система, запускаем — выбираем Защита системы (слева). Выбираем системный диск (обычно буква C). Нажимаем Создать, пишем понятное название точки и Создать.
Отключаем Apple Push из автозагрузки:
- Зажимаем клавиши Win + R > копируете и вставляете msconfig > ОК.
- Отобразится окошко Конфигурация системы, здесь активируем вкладку Автозагрузка.
- Будут отображены записи программ, которые запускаются автоматически при включении Windows — находим тут Apple Push.
- Чтобы отключить запись — просто снимите галочку и нажмите ОК.
Источник
Механизм пуш-уведомлений для iOS и Android
Пуш уведомления — это отличный канал мгновенного общения с вашими пользователями, который позволяет вам вовлечь их в активное взаимодействие с вашей платформой. Каждый из ваших пользователей будет в курсе последних новостей, специальных акций, обновлений приложений и т.д. Кроме того, вы сможете напомнить потребителю, что он или она давно не открывали ваше приложение.
В этой статье рассмотрим принцип работы пуш-уведомлений для iOS и Андроид и опишем их преимущества.
Подробная информация и подходы к убеждению пользователя подписаться на ваши push-сообщения https://agilie.com/en/blog/lets-discuss-a-push-notifications-mechanism-for-ios-and-android
Что такое Пуш-уведомления
Пуш-уведомление — это небольшое сообщение, рассылаемое интернет ресурсом своим пользователям на мобильные устройства и компьютеры. Самое главное, что в этот момент пользователь может даже не работать с мобильной программой. У вас будет возможность связаться с ним, когда захотите.
Преимущества технологии пуш уведомлений
- предоставляет пользователю целевую актуальную информацию в нужное время;
- ОС устройства поддерживают постоянное фоновое соединение с сервером, что означает взаимодействие с пользователем в режиме реального времени в любое время суток в любой точке мира;
- пуш-технология не перегружает память устройства и не разряжает аккумулятор.
Из чего состоит пуш-уведомление
- Заголовок. Лучше придумать что-то яркое, оригинальное.
- Визуальная составляющая. Картинка, цель которой — привлечь внимание пользователя;
- Текст. Само push-сообщение с информацией, которую нужно передать пользователю;
- Ссылка на экран приложения, соответствующая переданному сообщению.
Статистика пуш-уведомлений
В среднем пользователь ежедневно получает на свой смартфон 45-50 пуш-уведомлений;
Пик активности пользователей наблюдается с 18 до 20 часов в будние дни: именно в это время мы привыкли открывать уведомления. А самое активное взаимодействие с уведомлениями обычно происходит по вторникам;
Пользователи подписываются на пуш-уведомления в три раза чаще, чем на рассылку новостей по электронной почте. При этом CTR push-сообщений в 7 раз выше, чем у писем по электронной почте.
Уведомления с упоминанием пользователя по имени открываются на 10% активнее.
При правильных настройках push-уведомлений можно ожидать 45+% переходов на ресурс, будь то сайт или приложение;
По статистике, к основным функциям push-уведомлений относятся:
- уведомление пользователя о выпуске обновлений приложения (более 40%);
- специальные предложения (почти 25%);
- анонс нового контента (около 15%);
- рекламные ссылки (10+%).
Типы push-уведомлений
При реализации пушей нужно понимать их суть.
Самое простое использование push-уведомлений — рассказать клиенту о том, что происходит в вашем приложении (и эта история должна быть ему интересна). Например, приложение мобильной коммерции может информировать о предстоящих продажах, рекламных акциях и т. д .;
Помимо прочего, вы можете информировать пользователя о событиях, связанных с ним и его жизнью. Вот несколько идей:
приветствие вернувшегося пользователя;
уведомление о действиях других пользователей из своего окружения (допустим, Instagram часто сообщает пользователю, что конкретный друг недавно сделал новый пост или опубликовал историю);
информирование о полученных новых сообщениях и др.
Транзакционные пуш-сообщения — уведомления бизнес-типа, которые информируют пользователя о статусе заказа и его изменении, подтверждение оплаты, появление товара на складе и т.д.
Разница между пуш-уведомлениями на iOS и Android
Все уведомления одинаковы по архитектуре и принципу работы, но все же есть некоторые отличия.
Свайпы:
пользователи устройств iOS могут открыть уведомление не только нажав на него, но и проведя пальцем вправо (при смахивании влево предлагается несколько действий на выбор);
с другой стороны, пользователи Android знают, что смахивание вправо и влево закрывает уведомление.
Условия по умолчанию:
В случае с Android-устройствами push-уведомления приходят по умолчанию, поэтому ставка подписки очень высока и достигает 91,1% ( подписка автоматическая);
Если речь идет о платформе iOS, то ситуация несколько иная: по умолчанию уведомления заблокированы, а для подписки на них требуется подтверждение пользователя. И процент подписок соответственно ниже, чем на программы под Android: около 44%. Следовательно, пользователи iOS с меньшей вероятностью откроют уведомление. Зато, если они его откроют, то более сознательно, а значит больше шансов превратить пользователей iOS в реальных клиентов.
Группировка пуш-сообщений:
В iOS 12 и выше уведомления сгруппированы по приложениям и времени, что значительно улучшает взаимодействие с пользователем.
В Android уведомления также можно группировать, но подход к группировке не всегда понятен и иногда не имеет логики.
Настройки push-уведомлений:
Каждое приложение для iOS требует большой работы по настройке уведомлений, например, по выбору звукового сигнала. В основном есть 3 варианта отображения push-уведомлений на iOS:
Аудио — информирование о новом уведомлении (с помощью звукового сигнала);
Аудио / Баннеры, когда на экране смартфона появляется баннер, сопровождаемый звуковым сигналом;
Значки, когда в правом верхнем углу значка приложения появляется специальный значок с цифрой, обозначающей количество уведомлений.
В случае с программами под Android все намного сложнее, поскольку платформа Google достаточно гибкая. Помимо прочего, не имеет встроенной системы для отображения пуш-сообщений, поэтому все зависит от разработчика. Как он хочет и программирует, так и будет. Так осуществляется механизм пуш-сообщений на Android.
Ключевые преимущества пуш-уведомлений
Привлечение внимания пользователей. Пуш-сообщения возникают на экране смартфона, даже если пользователь уже закрыл ваше приложение (или вообще не открывал его сегодня). Таким образом вы привлечете внимание пользователя и напомните ему о своей программе.
Более легкое и лучшее взаимодействие с пользователем, которое включает:
- упрощенный процесс подписки на уведомления (всего одно касание, и пользователь подписывается);
- возможность общаться с пользователем независимо от его взаимодействия с вашим мобильным сервисом (о чем мы уже упоминали в первом пункте).
Эффективное превращение пользователей в клиентов. Push-уведомления помогают вернуть пользователя в приложение, что увеличивает конверсию и повторно активирует неактивных подписчиков.
Безопасность контактных данных пользователей. Когда пользователь подписывается на рассылку новостей по электронной почте, он предоставляет компании свой адрес электронной почты. Однако функции push-уведомлений не зависят от контактной информации, а это означает, что пользователь чувствует себя в безопасности и с большей готовностью соглашается работать с вами. Вы узнаете все, что вам нужно, позже, когда пользователь начнет вам доверять.
Увеличенный и улучшенный трафик. Используя функции push-уведомлений, вы можете направить клиента на определенный экран приложения (тот, который вы продвигаете).
Основные механизмы для пуш-уведомлений
Общий принцип работы пуш-уведомлений на iOS и Android:
Конечно, любое приложение нужно предварительно установить на мобильный.
Теперь Операционная система зарегистрирует приложение на требуемом сервере: GCM / FCM (Android), APNS (iOS), MPNS (Windows Phone) и получит токен, который является идентификатором устройства. Считайте токен адресом для отправки пуш-уведомлений.
Токен получается приложением и затем отправляет его на сервер для организации дальнейшей работы с пуш-уведомлениями.
Дальше все просто: если условия, которые определены разработчиком приложения, совпадают, сервер отправляет пуш-уведомление с использованием токена. Эти условия могут отличаться, и мы описывали их ранее (рекламное предложение, напоминание пользователю о том, что он не открывает вашу программу в течение длительного времени и т. Д.).
Иногда чтобы проверить актуальность токена дополнительно может быть использован промежуточный сервис (поскольку приложение можно переустановить или удалить).
Почему важна проверка актуальности?
Допустим, пользователь удалил приложение с одного из своих устройств. Логично предположить, что провайдер push-уведомлений будет передавать информацию о том, что уведомления больше не должны отправляться именно на это устройство. Правильно?
Однако GCM (сервер push-уведомлений Android) немедленно отправит требуемый токен, а APNS (служба Apple) обратится к отдельному серверу обратной связи, где токены накапливаются и отправляются один раз в день. Так что промежуточная услуга в таком случае пригодится.
Механизмы push-уведомлений iOS
APNS расшифровывается как Apple Push Notification Service и является облачной платформой системы iOS. Он позволяет отправлять push-уведомления iOS.
Механизмы push-уведомлений iOS чрезвычайно просты и повторяют то, что мы описали выше. Инфографика ниже очень ясно иллюстрирует весь процесс:
Механизмы пуш-уведомлений Android
Если говорить о решении пуш-уведомлений от Android, то есть несколько вариантов:
Самый простой способ действовать — использовать Firebase Cloud Messaging (для устройств Android с Google Apps).
Если у ваших пользователей есть устройства Huawei (а именно, без Google Apps), вам следует прибегнуть к Huawei Push Kit.
Конечно, вы также можете создать собственного провайдера push-уведомлений или использовать готовые проекты, поскольку платформа имеет открытый исходный код.
FCM — Firebase Cloud Messaging — это новая улучшенная версия GCM, представляет собой обмен сообщениями в облаке Google. Что бесплатно и очень гибко.
Как мы уже говорили, уведомления Android отображаются на смартфоне в том виде, в каком этого хочет разработчик. То есть функции пуш-уведомлений (и способ их отображения) зависят от того, кто создает приложение.
Кросс-платформенные механизмы для пуш-уведомлений
Если ваше приложение работает только на одной платформе, все относительно просто … но что, если ваш мобильный сервис поддерживает устройства iOS и Android? Неужели нужно настраивать уведомления для каждой ОС отдельно? Разве нет способа облегчить такой утомительный процесс?
Давайте успокоимся: упомянутый выше Firebase Cloud Messaging от Google может помочь организовать отправку уведомлений на все типы устройств: Android и iOS; кроме того, он также работает с веб-уведомлениями! Единственное исключение — платформа Huawei (в этом случае придется иметь дело с Huawei Push Kit).
Итак, пуш-уведомления — это незаменимый метод в маркетинговой стратегии любого бизнеса. Позволяют установить контакт с клиентом и удерживать его внимание.
Главное использовать преимущества пуш-сообщений с умом.
Источник