extra_toc

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


Перед тем, как приступить к работе с уведомлениями, необходимо выполнить регистрацию аккаунта Google.

Регистрация приложения в Firebase

1. Откройте Firebase Console и выполните вход в учетную запись Google. 

2. Нажмите кнопку "Создать проект"

2. Укажите название вашего проекта и нажмите кнопку "Продолжить". Вы можете использовать любое название. Например: "FGX Native project".

3. Нажмите кнопку "Далее".

4. Когда проект будет создан, вы увидите главную страницу:

5. Теперь необходимо зарегистрировать ваше FGX Native Android приложение для этого нажимаете на кнопку с логотипом Андроида.

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

  • Если у вас уже есть приложение, то узнать название пакета можно в настройках проекта: "Project > Options... > Version Info > package".
  • Если у вас еще нет приложения, то придумайте название пакета. Например: "ru.fgx.pushnotificationdemo".

7. Нажмите кнопку "Зарегистрировать приложение".

8. Мастер предложит скачать вам конфигурационный файл с настройками вашего приложения. Скачайте файл "google-services.json" и сохраните его рядом с проектом.

9. Затем "Далее", "Далее" и "Открыть консоль". Теперь вы успешно зарегистрировали ваше приложение.

Теперь необходимо выполнить настройку FGX Native приложения в IDE.

Настройка приложения

1. Откройте существующий проет или создайте новый. Если вы создаете новый проект, то в мастере создания проекта обязательно укажите (на основании шага 6 регистрации приложения в Firebase):

  • Идентификатор организации. Например: "ru.fgx".
  • Имя проекта. Например: "pushnotificationdemo".

2. Откройте настройки проекта: "Project > Options... > Application > Services".

2.1. Импортируйте ранее скаченный (шаг 8) конфигурационный файл, нажав на кнопку "Import...". Импорт должен успешно загрузить требуемые значения в выше стоящие поля "Google application Id" и "Default sender id".

2.2 Перейдите к странице "Application > Entitlment list". И поставьте галку напротив: "Receive push notification". 

3. Сохраните изменения.

4. Откройте главную форму вашего приложения и подключите модули System.PushNotification и FGX.PushNotification.

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

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

Чтобы получить уведомление программным способом, нужно выполнить программное соединение с локальным Firebase сервисом. Для этого в конструкторе класса формы:

Заведите поля FPushService и FServiceConnection и обработчики OnServiceConnectionChange и OnReceiveNotificationEvent в классе формы:

Когда устройство примет push-уведомление, сработает событие OnReceiveNotificationEvent при этом параметр ANotification будет содержать объект уведомления. 

Все изменения в локальном Firebase сервисе сопровождаются уведомлением через событие OnChange.

Например таким способом можно вывести в TfgMemo токен устройства и ошибку.

Отправка тестового сообщения

При первом старте приложения, оно выполняет свою регистрацию в облаке Firebase. При этом облако выдает устройству уникальный токен DeviceToken. Перед тем, как отправить тестовое уведомление, необходимо узнать токен устройства (например, в примере выше, токен выводится в поле ввода мемо и в лог устройства).

Чтобы отправить тестовое сообщение на конкретное устройство, можно воспользоваться Firebase консолью.  

1. Откройте консоль: https://console.firebase.google.com/

2. Перейдите в меню навигации к разделу: "Grow > Cloud messaging"

3. Нажмите кнопку "Send your first message".

4. Заполните данные уведомления:

  • Заголовок
  • Описание

5. Нажмите кнопку "Отправить тестовое сообщение". Консоль предложит указать на какие устройства необходимо отправить данное уведомление.

6. Укажите в поле токен устройства (раздел "Получение Push-уведомления" событие OnServiceConnectionChange) и нажмите кнопку "+".

7. Выполните отправку уведомления, путем нажатия на кнопку "Протестировать".

В зависимости от производителя и модификации ОС Андроид может наблюдаться разное поведение при отображении уведомления. На MIUI версии уведомление падает в шторку цветра уведомления:

Получение данных уведомления при старте приложения

Если пользователь нажимает на push-уведомление в центре уведомлений, то система запустит ваше приложение. В любой момент времени можно получить данные стартового уведомления напрямую из локального Firebase сервиса (Раздел "Получение Push-уведомлений").