Как включить push уведомления на андроид


Как включить push-уведомления на мобильных устройствах?

17:04 25.01.2018 1 368

Push-уведомления позволяют веб-ресурсу выходить за пределы браузера и являются невероятно мощным способом взаимодействия с пользователем. Они могут делать простые вещи, например предупреждать пользователя о важном событии, отображать значок и небольшой фрагмент текста, который пользователь может затем щелкнуть, чтобы открыть сайт. Есть также возможность интегрировать кнопки действий в уведомлении, чтобы пользователь мог взаимодействовать с вашим сайтом или приложением, не возвращаясь на свою веб-страницу.

На мобильном устройстве push-сообщения выглядят как текстовые SMS или мобильные оповещения, но они доступны только тем пользователям, которые установили необходимое для их отображения приложение. У каждой мобильной платформы iOS и Android есть собственная поддержка пуш-уведомлений.

Почему они используются?

Push-уведомления обеспечивают удобство и ценность для пользователей веб-приложений. Например, пользователи могут получать:

  • спортивные прогнозы и новости;

  • полезные сообщения, такие как отчеты о трафике, погоде;

  • проверку, изменения и информацию о рейсе.

Для издателей push-уведомления – это способ напрямую общаться с пользователем. Они не попадают в спам на почте и не забываются в папке «Входящие». Скорость кликов может быть в два раза выше, чем дает электронная почта. Такие сообщения способны напоминать об использовании приложения, открыто оно или нет. Еще они могут применяться для управления действиями, такими как:

  • продвижение продуктов или предложений по увеличению продаж;

  • улучшение качества обслуживания клиентов;

  • преобразование пользователей неизвестного приложения в постоянных клиентов;

  • отправка транзакционных квитанций и прочее.

Главное, чтобы веб-ресурс был правильно добавлен и активирован.

Добавление в приложение

Издатель приложений регистрируется с помощью службы push-уведомлений ОС.

Служба ОС предоставляет интерфейс прикладного программирования (API). API — способ, с помощью которого приложение может взаимодействовать с сервисом.

Издатель веб-ресурса добавляет SDK в приложение. SDK — это кодовая библиотека, специфичная для службы push-уведомлений ОС.

Издатель сайта загружает приложение в соответствующий магазин для определённой ОС.

Активация пользователя

Пользователь посещает магазин приложений ОС, загружает и затем устанавливает его.

Пользователь открывает приложение. Уникальные идентификаторы как для приложения, так и для устройства, регистрируются в службе push-уведомлений ОС.

Они передаются обратно в приложение из службы push-уведомлений ОС. Они также отправляются издателю приложений.

Владелец ресурса получает и сохраняет эти регистрационные данные, включая уникальные идентификаторы.

Отправка

Издатель приложений составляет ручное сообщение через пользовательский интерфейс. Или владелец веб-ресурса настраивает автоматическую отправку сообщений через API. Издатель определяет аудиторию, которой будет отправлено push-сообщение и решает, следует ли отправлять сообщение немедленно или по расписанию.

Push-уведомления могут быть нацелены на сегменты вашей пользовательской базы и даже персонализированы для конкретных пользователей приложений. Это основное преимущество по сравнению с текстовыми сообщениями SMS. Однако они также требуют управления идентификационными данными пользователя. И им нужен какой-то интерфейс для написания сообщений, их таргетинга и отправки. Издатели могут сами строить эту инфраструктуру или могут нанять такого поставщика, как Urban Airship или иного сервиса, чтобы воспользоваться соответствующими услугами. Все чаще издатели приложений оплачивают эти услуги, так что они могут сосредоточиться на создании отличного приложения и поддержке межплатформенной службы push-уведомлений, которая требует значительных ресурсов и постоянного обслуживания.

Поставщики платформ также предоставляют такие возможности, как:

  • Составление отчетов и планирование.

  • Автоматизация мобильного маркетинга.

  • Сбор и сегментация пользовательских атрибутов.

  • Управление данными.

  • Безопасность.

  • Кросс-платформенная поддержка.

Главное, чтобы пользователь смог вовремя и правильно прочитать отправленное пуш-сообщение.

Как отображаются уведомления на устройствах пользователей?

В основном пользователи видят уведомление как баннер или всплывающее предупреждение, поскольку они используют свой телефон. Это предупреждение отображается независимо от того, что делает пользователь. Большинство мобильных операционных систем также показывают push-уведомления вместе в одном представлении. В iOS у Apple есть Центр уведомлений. Доступ к этому сервису организован в хронологическом порядке, и пользователи получают доступ к центру уведомлений, просматривая верхнюю часть экрана. На устройствах Android отображаются непрочитанные сообщения на экране блокировки.

iOS позволяет пользователям настраивать push-уведомления на уровне отдельных приложений. Пользователи могут включать или выключать звуки и выбирать стиль, который использует iOS для отображения уведомления. Пользователи также могут управлять красным «значком», показывающим количество непрочитанных уведомлений на значке рабочего стола приложения. Android использует стандартный вид баннера, который пользователи не могут изменять на уровне ОС.

Как включить пуш-уведомления на Айфоне?

Чтобы включить push-оповещения на мобильном устройстве iOS:

  • Коснитесь «Настройки».

  • Найдите и нажмите искомый сайт в списке приложений.

  • Нажмите «Уведомления».

  • Включите параметр «Разрешить уведомления».

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

Как включить пуш-уведомления на Андроид?

Для настройки получения push-оповещений на этой ОС необходимо:

  • Открыть настройки устройства.

  • Нажать «Уведомления».

  • Найти и выделить необходимый сайт в списке приложений.

  • Нажать для подключения «Разрешить включение уведомлений» (другие переключатели могут быть настроены в соответствии с вашими предпочтениями).

  • Открыть выбранный веб-ресурс.

  • Активировать значок скользящего меню «Настройка уведомлений».

  • Включить разрешение на предупреждение и обновление рассылок.

  • Коснуться значка «Готово».

Если вы не видите выбранное веб-приложение в настройках уведомлений вашего телефона, вы, возможно, не дали разрешение на отправку уведомлений при первой загрузке. Чтобы исправить это, удалите приложение, а затем снова загрузите его.

Заключение

Push-уведомления — это прямой путь общения с пользователями. Владельцы площадок должны понимать всю ценность такой коммуникации. Если они этого не сделают, push-уведомления будут проигнорированы или отключены, что негативно скажется на ранжировании ресурса.

job-sbu.org

Как настроить получение push-уведомлений от Facebook на мобильном устройстве? | Справочный центр Facebook

Push-уведомления на мобильном устройстве — это сообщения, которые появляются, когда вы не используете Facebook активно. Можно задать эти уведомления в настройках iPhone, iPad или устройства Android.

iOS

Чтобы настроить push-уведомления на iPhone или iPad:

  1. Коснитесь .
  2. Коснитесь Уведомления > Facebook.
  3. Коснитесь Разрешить уведомления, чтобы включить уведомления от Facebook. Коснитесь Разрешить уведомления, чтобы выключить уведомления от Facebook.

Android

Чтобы настроить push-уведомления на устройстве Android (OS 6.0+):

  1. Перейдите к настройкам устройства.
  2. Коснитесь Приложения > Менеджер приложений > Facebook > Уведомления.
  3. Включите или выключите уведомления от Facebook.

Чтобы настроить push-уведомления на мобильном устройстве в настройках Facebook:

  1. Коснитесь .
  2. Коснитесь Настройки уведомлений.
  3. Затем коснитесь, чтобы настроить отображение и тематику уведомлений.

ru-ru.facebook.com

Что такое Push-уведомления на Android или iPhone?

Push-технология (push с английского переводится как «толкать», «проталкивать») — это один из способов распространения информации, когда данные поступают на экран устройства (планшета, смартфона и т.д.) на основе установленных параметров. Говоря простым языком, это уведомления, которые передают приложения и которые появляются на экране устройства пользователя.

Первой компанией, которая запустила Push-уведомления для своих устройств, стала Apple — пуш-уведомления появились на операционной системе OS X. В дальнейшем они появились на других операционных системах, в том числе мобильных: iOS, Android, Windows Mobile и т.д.

Push-уведомления — это получение важной информации. Хотите пример? Пожалуйста, возьмем популярный мессенджер Whatsapp. Приложение закрыто, пуш-уведомления включены, устройство подключено к интернету. Когда пользователю (вам) отправляют сообщение, на экране устройства появляется пуш-уведомление с сообщением. Согласитесь, это очень удобно.

Таким образом вы не пропустите важное сообщение, конечно, при том условии, что у вас подключен интернет и, самое главное, разрешено получение пуш-уведомлений.

Выше приведен скриншот для iOS на iPhone, а вот пример пуш-уведомления на устройстве на базе ОС Android:

Но пуш-уведомления не всегда полезны, иногда они раздражают. Простой пример: вы установили игру, поиграли в нее, закрыли ее и благополучно забыли о ней. Спустя какое-то время приложение посылает вам пуш-уведомление — мол, почему вы забыли об игре, поиграйте вновь. Казалось бы, что тут такого? Во-первых, далеко не всех устраивает, что приложение посылает совершенно ненужные сообщения, а во-вторых, такие уведомления могут придти даже глубокой ночью, когда вы спите. Разумеется, это сопровождается звонкой мелодией.

К счастью, пуш-уведомления легко отключить, причем сделать это можно для каждого приложения отдельно.

androidnik.ru

Push уведомления в Android. Грабли, костыли и велосипеды

На написание данной статьи меня подтолкнула задача, которая была поставлена передо мной в одном из рабочих проектов: реализовать Push-уведомления в приложении. Казалось, все просто: штудируешь документацию, примеры и вперед. К тому же, опыт работы с уведомлениями уже был. Но не тут то было… Сервис, в рамках которого реализовано приложение под Android, предъявляет довольно жесткие требования к работе Push-уведомлений. Необходимо в пределах 30-60 секунд оповестить пользователя о некотором действии. При успешном оповещении с устройства пользователя отправляется запрос на сервер с соответствующим статусом. Из документации известно, что сервис GCM (Google Cloud Messaging) не гарантирует доставку PUSH-уведомлений на устройства, поэтому в качестве backdoor варианта, при нарушении этих временных рамок, наш сервис уведомляет пользователя с помощью SMS сообщения. Поскольку стоимость SMS сообщения существенно выше чем PUSH-уведомления, необходимо максимально сократить поток SMS сообщений на клиентские устройства. Проштудировав документацию и прикрутив пуш-уведомления, мы разослали нескольким клиентам первую сборку приложения для теста и стали ждать. Результаты были примерно следующими:

  • при активном Wifi соединении все работает идеально: уведомления доставляются, клиенты рады.
  • при активном мобильном интернете началось самое веселье.
Некоторые клиенты писали, что испытывают задержки в доставке пушей, либо получали одновременно и PUSH и SMS, что достаточно не практично. Другие писали, что вовсе не получали уведомлений, а только SMS. У третьих, как и у нас на тестовых устройствах, все было ок. Собрав с недовольных клиентов максимально возможную информацию, стали разбираться в проблеме и вывели следующий список ограничений (этот список позже вылился в полноценный FAQ):
  • включенный режим Энергосбережения (например, Stamina на устройствах Sony) влияет на работу Push уведомлений;
  • у пользователя обязательно должен быть минимум 1 активный Google аккаунт на устройстве;
  • необходимо удостовериться в том, что на устройстве установлена актуальная версия приложения “Сервисы Google Play”;
  • проверить, не отключены ли уведомления для приложения (галочка на страничке приложения в настройках телефона);
  • проверить, не ограничена ли работа фонового режима для приложения (настройка расположена в меню «Использование данных»);
  • в документации к GCM указано, что уведомления рассылаются только по определенным портам, поэтому настройки роутера, файервола и антивируса так же стоит учитывать.
Разослав данную памятку по всем клиентам, мы снова стали ждать результатов. И они оказались снова «не очень». Стали копать дальше.

На данном этапе очень сильно помогла статья, написанная ребятами из Mail.ru. В ней очень подробно описаны тонкости реализации GCM на клиентской стороне, а так же моменты, в связи с которыми отказываются работать Push уведомления в мобильных сетях. В конечном счете было принято решение о том, чтобы держать свое соединение с сервером в связке с GCM.

Перед тем, как приступить к решению, стоить выделить несколько очень важных моментов, которые позволяют сузить круг потенциально «нерабочих» устройств:
  • проблема возникает только при подключении к мобильному интернету;
  • по данным клиентов, проблема возникает на версии андроида 4 и выше.
И так, перейдем к реализации. Бывалый разработчик под Android сходу скажет, что решений задачи как минимум 2: использовать Service или AlarmManager. Мы попробовали оба варианта. Рассмотрим первый из них. Для того, чтобы создать неубиваемый системой сервис, который постоянно будет висеть в фоне и выполнять нашу задачу, мы использовали метод: startForeground(int notificationID, Notification notification); где
  • notificationId — некоторый уникальный идентификатор уведомления, который будет выведен в статус баре и в выезжающей шторке;
  • notification — само уведомление.
В данном случае обязательным условием является отображение уведомления в статус баре. Такой подход гарантирует то, что сервису будет дан больший приоритет (поскольку он взаимодействует с UI частью системы) в момент нехватки памяти на устройстве и система будет выгружать его одним из последних. Нам это уведомление не нужно, поэтому мы воспользовались следующим велосипедом: достаточно запустить одновременно с первым сервисом второй и для обоих сервисов в качестве notificationID использовать одно и тоже значение. Затем убить второй сервис. При этом уведомление пропадет из статус бара, но функциональные и приоритетные возможности первого сервиса останутся. Реализовав данный подход, мы отправили сборку на тест. По результатам выяснилось, что система все-таки выгружает сервис, а по логам мы видели, как происходили существенные временные разрывы при запросе данных в фоне с нашего сервера. Поэтому приступили к реализации второго варианта — AlarmManager. AlarmManager — это класс, который предоставляет работу с, грубо говоря, «будильником». Он позволяет указать время, по достижении которого система отправит широковещательное уведомление, которое позволит пробудить наше приложение и даст ему возможность выполнить необходимые действия. В работе этого метода есть некоторые ограничения, и их необходимо обработать:
  • данные о «будильниках» будут стерты после перезагрузки устройства;
  • данные о «будильниках» будут стерты после обновления приложения.
Первыми граблями, на которые мы наступили, был метод setRepeating() который позволяет установить повторяющийся с некоторым интервалом «будильник». Прикрутив данный способ, стали тестировать, и тесты показали обратное — «будильник» не повторялся. Стали разбираться в чем дело, посмотрели документацию. И именно там нашли ответ на вопрос — начиная с 19 API lvl (Kitkat) абсолютно все «будильники» в системе стали разовыми. Вывод — всегда читайте документацию. Эти грабли не были поводом для расстройства, ведь решение задачи довольно простое — запускать единоразовый «будильник» и после срабатывания переустанавливать его. При реализации этого подхода мы наткнулись на следующие грабли — оказалось, что для разных уровней API необходимо по разному устанавливать будильники, при этом в документации ничего сказано не было. Но данная проблема решилась достаточно просто — методом «тыка» и «гугления». Ниже представлен пример кода, позволяющий правильно устанавливать «будильники»: private static void setUpAlarm(final Context context, final Intent intent, final int timeInterval) { final AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); final PendingIntent pi = PendingIntent.getBroadcast(context, timeInterval, intent, 0); am.cancel(pi); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { final AlarmManager.AlarmClockInfo alarmClockInfo = new AlarmManager.AlarmClockInfo(System.currentTimeMillis() + timeInterval, pi); am.setAlarmClock(alarmClockInfo, pi); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) am.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + timeInterval, pi); else am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + timeInterval, pi); } Хочу обратить внимание на флаг AlarmManager.RTC_WAKEUP — именно с помощью него система позволит нашему приложению «проснуться» при неактивном экране, когда устройство находится в заблокированном состоянии. Данный подход с «будильникам» дал нам нужный результат — приложение в фоне корректно опрашивает сервер на наличие новых данных. Сейчас мы дорабатываем алгоритм. На данный момент реализуем и тестируем следующую оптимизацию, которая позволит сузить круг устройств и тем самым уменьшить нагрузку на сервер:
  • в сообщении, отправленном средствами GCM на устройство, содержится некоторый уникальный ID;
  • получив данные GET запросом в фоновом режиме проверяем, существуют ли уже запись с таким ID на устройстве;
  • если локально на устройстве таких данных нет, мы запоминаем этот ID и время его получения T1;
  • ждем PUSH с таким же ID, при получении запоминаем время T2 и проверяем разницу между T2 и T1;
  • если разница составляет больше некоторого временного критерия (значения), то на устройстве наблюдается проблема с доставкой уведомлений и для корректной работы сервиса необходимо постоянно запрашивать данные в фоновом режиме с сервера (критерий советую выбирать исходя из решаемой задачи. В нашем случае, был выбран критерий равный 5 минутам);
  • данную разницу стоит вычислять несколько раз, например 5-10 раз, только после этого делать вывод о том, что устройство действительно содержит проблему с получением Push уведомлений (таким образом исключается ситуация банального разрыва соединения, таймаута и пр.);
  • необходимо прогонять данный алгоритм периодически (например, раз в неделю, или после обновления ОС на устройстве).
Всем добра. И поменьше подобных костылей. P.S.

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

P.S.S.

Предрекаю, в комментариях наверняка будут вопросы о расходе батарейки. Я провел несколько тестов, оставив личный телефон на ночь с включенным мобильным интернетом. Результаты были в районе 20-25% расхода заряда за 8-9 часов. Так же клиенты, которым мы отправляли тестовые сборки, не жаловались на проблемы с увеличением расхода заряда батареи.

Метки:
  • android
  • push notifications
  • gcm

habr.com


Смотрите также