Содержание

Инструкция по подключению мобильных пуш-уведомлений (Android)

Для подключения мобильных пуш-уведомлений необходимо запросить библиотеку у вашего персонального менеджера. Или напишите нам на experts@enkod.io

1. Подключение модуля

Для добавления модуля в проект, необходимо поместить папку EnkodPushLibrary на одном уровне с модулем app.

В settings.gradle добавить:

include ':EnkodPushLibrary'    

Для данной библиотеки minSdkVersion = 23

В AndroidManifest в manifest добавить:

<uses-permission android:name="android.permission.INTERNET" />

В AndroidManifest в application добавить:

android:usesCleartextTraffic="true"  

2. Инициализация зависимостей

1. В gradle файл уровня модуля app следует добавить зависимость модуля библиотеки:

implementation project(path: ':EnkodPushLibrary') 

2. В gradle файл уровня модуля app следует добавить зависимость FCM (тестировалось на версии 23.0.5):

implementation 'com.google.firebase:firebase-messaging:23.0.5'  

3. Также следует добавить плагин сервисов Google:

id 'com.google.gms.google-services'  // Google Services plugin 

4. В gradle файла уровня приложения следует добавить зависимость сервисов Google:

dependencies {
...
    classpath 'com.google.gms:google-services:4.3.5'
...
}   

5. В gradle файла уровня приложения следует добавить репозиторий Google:

repositories {
...
    google()
...
} 

6. Для инициализации библиотеки необходимо вызвать в вашем Application классе билдер и указать параметры:

EnkodPushLibrary.Builder()
    .setOnTokenListener{}
    .setOnMessageReceiveListener { showToast(it.messageId) }
    .setOnDeletedMessageListener { showToast("message deleted") }
    .setOnDynamicLinkClickListener { string-> }
    .setOnProductCallBackListener { }
    .setOnErrorListener { errorToast(it) }
    .setOnBaseUrlCheckerListener {  }
    .setOnPushClickListener { bundle: Bundle, str: String-> }
    .build(applicationContext, «account») 

где account - системное имя вашего аккаунта в enKod (запросите у персонального менеджера)

Методы и условия срабатывания:

Также каждый из вышеперечисленных методов можно вызвать отдельно у библиотеки после инициализации.

3. Обработка нажатия на пуш

При открытии приложения через пуш открывается активити, указанная в пуше, она отправляет запрос на сервер о том что пуш был открыт и будет вызван метод .setOnPushClickListener {, если это была динамическая ссылка, то дополнительно будет вызван метод setOnDynamicLinkClickListener { str-> }

4. Выход из учетной записи и регистрация

Для того чтобы прекратить прием уведомлений при выходе из учетной записи, необходимо использовать метод logOut(), который удалит текущий токен и очистит инстанс Firebase. Для того чтобы возобновить получение уведомлений, необходимо вызвать метод createToken() для создания нового токена.

Для использования собственного обработчика deep link при инициализации библиотеки в setOnDynamicLinkClickListener { } необходимо передать собственный обработчик. В противном случае нажатие будет обработано встроенными методами библиотеки.

6. Модель сообщения

"notification": {
    "click_action":".OnOpenActivity",
    "body":"Body of Your Notification",
    "icon":"ic_launcher_background",
    "title":"Title of Your Notification",
    "color":"#FFEE1000",
    "image":"https://picsum.photos/200/300",
},
"data": {
    "intent":"0",
    "url":"https://www.gsrikar.com/2018/12/read-metadata-from-andriod-manifest.html",
    "priority":"0",
    "led":"#FFEE1000",
    "led_on":"300",
    "led_of_ms":"100",
    "hasVibro":"true",
    "hasSound":"true",
    "channel":"enkod_lib_59",
    "personId":20,
    "messageId":10,
    "intent1":"1",//актуально для кнопок в уведомлении
    "url1":"testapp://screen1",//актуально для кнопок в уведомлении
    "label1":"Text in button1",//актуально для кнопок в уведомлении
}                      

Значение данных

"click_action" Activity, которая обрабатывает нажатия, следует указать OnOpenActivity
"body" текст тела пуша
"icon" название ресурса иконки
"title" заголовок пуша
"color" цвет иконки пуша
"image" url для изображения
"intent" действие, которое будет выполнено по нажатию по пушу:
  • "0" - произойдет открытие приложения с передачей туда динамической ссылки для дальнейшей ее обработки
  • "1" - открытие ссылки в браузере
  • "любое другое значение" - будет открыто приложение
"url" ссылка динамическая или для открытия в браузере
"priority" приоритет пуша, принимает значения:
  • "-2" - PRIORITY_MIN
  • "-1" - PRIORITY_LOW
  • "0" - PRIORITY_DEFAULT
  • "1" - PRIORITY_HIGH
"led" цвет индикатора
"led_on":"300" время включенного индикатора
"led_of_ms":"100" время выключенного индикатора
"hasVibro":"true" имеет ли вибрацию или нет
"hasSound":"true" имеет звук или нет
"channel":"enkod_lib_59" id канала