Опишите ваш проект
Наши специалисты свяжутся с вами в ближайшее время
Отправив запрос вы получаете:
  • Письмо или звонок от нашего менеджера
  • Оценку своего проекта
  • Личную встречу, при необходимости
  • Конфиденциальность гарантирована!
maxim_kaschjev
Ваш менеджер
Максим Кащеев
С удовольствием ответим на все ваши вопросы
Задать вопрос
Правила маркетинга

Почему не приходят push-уведомления?

У каждой компании, занимающейся разработкой сайтов и приложений, есть свои списки любимых клиентов и проектов. Мы любим своих заказчиков, особенно тех, кто, помимо готового продукта в конце, хочет самостоятельно разобраться в технологиях и подняться до уровня специалиста. В ход идут любые методы, но особой популярностью пользуются «пытки вопросами» (любой тестировщик отдыхает).

Мы собираем их, анализируем и находим ответы — результатами же решили поделиться с вами.

Технический портрет разрабатываемого приложения

Мы занимались созданием мобильного приложения для магазина одежды, чья архитектура была построена на базовой Activity (для отображения информации используются фрагменты). Для загрузки данных с сервера использовалась библиотека Retrofit, а для их хранения — встроенная зависимая база SQLite. Для выполнения запросов на сервер и для выборки с базы были выбраны Loader'ы.

Чтобы приложение было интерактивным и позволяло обмениваться сообщениями, мы подключили push-уведомления. В данном случае используются ВК и Facebook SDK для реализации авторизации/регистрации через социальные сети и выглядит это так: когда пользователь отправляет сообщение, он отправляет запрос с этим сообщением на наш сервер. Он формирует запрос с сообщением и данными о пользователе, которому адресовалось сообщение, и отправляет всю информацию на сервер Google. Тот формирует с этого запроса push-уведомление и отправляет на устройство пользователя. Наше приложение принимает этот пуш, парсит (обрабатывает) его и отображает в чате — коммуникация реализована.

Возникла проблема: когда приложение начинает работать в фоне или почему push-уведомления приходят только после запуска?

С этим вопросом обратился к нам клиент, поскольку опытным путем он столкнулся со следующей дилеммой: при запуске со второго устройства приложение работает хорошо, но как тогда работает «автозагрузка»?

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

Если пользователь не зарегистрируется в нем, то у него не будут работать пуш-уведомления.

Существуют и другие варианты объяснения, на которые следует обратить внимание:

  1. Пуши работают через сервис GCM (Google Cloud Messaging), поэтому если на устройстве отсутствуют Google Play Services, их работа нестабильна либо производитель внес свои доработки в их работу, то пуш-уведомления не будут работать полностью или же в их работе будут наблюдаться перебои. В случае отсутствия сервисов Google Play на телефоне, даже зарегистрироваться на пуши не получится. Конечно, можно это сделать и «принудительно»: если после регистрации подписка на push-уведомления на сервере не удалась, то нужно продолжить попытки при каждом заходе в приложение до успешного результата. Причиной этой ситуации могут быть проблемы с работой сервисов Google Play — в таком случае попытка подписаться может так ничем и закончиться.
  2. Причина некорректного функционирования кроется в неидеальной рабочей среде. Мы рекомендуем нашим клиентам для тестирования, и называем идеальной средой, использование телефонов Google Nexus (на них стоит «чистый» Android безо всяких изменений, а также работа ОС и сервисов на нем идеальна), стабильная работа сервера и интернет-соединения. При таких условиях запросы будут выдаваться правильно, без ошибок и максимально быстро. В таком случае, приложение будет быстро загружать новые данные, отображать их, и не будут возникать проблемы с неправильным отображением информации. В других телефонах (с измененной операционной системой — китайский бренды, Samsung, HTC и т.д.) можно ожидать не только нестабильную работу сервера, но и ограниченные возможности разрабатываемого приложения (из-за системного удаления многих методов-функций) — да, push-уведомления могут быть вообще не предусмотрены.
  3. Не забываем о главном — push-уведомления приходят только в случае стабильного интернет-соединения. Если этого нет, то сообщение придет как только связь будет восстановлена.

Резюме

  • Идеальная среда (безупречный интернет, «чистая» платформа) на то и идеальная, поэтому предупреждайте клиентов о всех возможных ошибках и ограничениях функционала приложения.
  • Не бойтесь вопросов клиентов — они будут тщательно искать недостатки в работе и найдут их! Поблагодарите и исправьте баги оперативно.
  • В первую очередь, создавайте приложение для пользователей, ориентируйтесь на их технические возможности и не создавайте ненужных вещей.
Поделись своей эмоцией после прочтения статьи
Давайте обсудим Ваш проект
Мы с радостью сделаем бесплатную оценку вашего проекта
Или просто загрузите файл с презентацией или описанием
Моисеев Артем
Business Development Manager
Моисеев Артем