Заметки из Зазеркалья

04.02.2015

Push и локальные уведомления

Реализовано в версии 8.3.6.182 мобильной платформы.

В платформе 1С:Предприятие и в мобильной платформе мы реализовали механизм push-уведомлений и локальных уведомлений.

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

Локальные уведомления

Локальные уведомления это удобный инструмент для реализации разнообразных напоминаний, которые мобильное приложение устанавливает само для себя. Напоминаний, которые могут сработать уже в тот момент, когда приложение не активно.

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

А обработка локального уведомления в мобильном приложении может выглядеть так:

Локальные уведомления могут быть моментальными (отображается сразу), запланированными (отображается в указанное время) или периодическими (отображается снова по истечении указанного периода).

Push-уведомления

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

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

Поэтому если нужно передать значительный объем данных, можно использовать другой сценарий взаимодействия. В нём push-уведомление используется только как сигнал мобильному приложению о том, что ему необходимо связаться с основным приложением. Мобильное приложение, получив push-уведомление, самостоятельно связывается с основным приложением тем способом, которым оно обычно это делает. Например, через веб- или http-сервис. И получает те данные, которые основное приложение подготовило для него.

Для передачи уведомлений от отправителя к получателю механизм push-уведомлений использует сторонний компонент - сервис доставки уведомлений. Мы реализовали поддержку двух таких сервисов:

В результате общая схема взаимодействия выглядит следующим образом:

  • Отправитель - основное приложение 1С:Предприятия;
  • Сервис доставки уведомлений (APNs или GCM) - отправляет уведомление мобильному устройству, когда оно становится доступно в сети Интернет;
  • Получатель - мобильное приложение 1С:Предприятия.

Например, отправка push-уведомления в основном приложении может выглядеть следующим образом:

А получение push-уведомления в мобильном приложении на Android может выглядеть так:

Получение и обработка уведомлений

Если мобильное приложение активно, то уведомление сразу доставляется в приложение. Если в приложении подключен обработчик уведомлений, то он исполняется. В этом обработчике можно запросить у основного приложения большой пакет данных, если в этом есть необходимость. Потому что размер push-уведомления ограничен, и передавать значительные объёмы данных в нём самом невозможно.

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

Теги: мобильная платформа  8.3.6