Для подключения мобильных пуш-уведомлений необходимо запросить библиотеку у вашего персонального менеджера. Или напишите нам на experts@enkod.io
Для добавления модуля в проект, необходимо поместить папку EnkodPushLibrary на одном уровне с модулем app.
В settings.gradle добавить:
include ':EnkodPushLibrary'
Для данной библиотеки minSdkVersion = 23
В AndroidManifest в manifest добавить:
<uses-permission android:name="android.permission.INTERNET" />
В AndroidManifest в application добавить:
android:usesCleartextTraffic="true"
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 (запросите у персонального менеджера)
Методы и условия срабатывания:
setOnTokenListener
- при обновлении токена, также он будет вызван во время инициализации и в него будет передан токен для дальнейшей обработкиsetOnMessageReceiveListener
- при получении на устройство нового пуш-уведомления, в него передается это самое сообщениеsetOnDeletedMessageListener
- при вызове onDeletedMessages в сервисе по управлению пушами, согласно https://firebase.google.com/docs/cloud-messaging/android/receive#override-ondeletedmessagessetOnDynamicLinkClickListener
- при открытии пуш-уведомления с динамической ссылкой, в него передается эта ссылкаsetOnProductCallBackListener
- метод, который срабатывает при отрабатывании методов для работы с товарамиsetOnErrorListener
- метод, срабатывающий при возникновении ошибок при обращении к серверуsetOnBaseUrlCheckerListener
- метод для обработки BaseUrlsetOnPushClickListener
- при открытии пуш-уведомленияbuild
- инициализация библиотеку и всех ее переменные, в него нужно передать контекст и имя клиентаТакже каждый из вышеперечисленных методов можно вызвать отдельно у библиотеки после инициализации.
subscribeToPush
и unsubscribeFromPush
- методы для подписки и отписки от пушей, после их вызова будет отправлен соответствующий запрос на сервер
При открытии приложения через пуш открывается активити, указанная в пуше, она отправляет запрос на сервер о том что пуш был открыт и будет вызван метод .setOnPushClickListener {
, если это была динамическая ссылка, то дополнительно будет вызван метод setOnDynamicLinkClickListener { str-> }
Для того чтобы прекратить прием уведомлений при выходе из учетной записи, необходимо использовать метод logOut(), который удалит текущий токен и очистит инстанс Firebase. Для того чтобы возобновить получение уведомлений, необходимо вызвать метод createToken() для создания нового токена.
Для использования собственного обработчика deep link при инициализации библиотеки в setOnDynamicLinkClickListener { } необходимо передать собственный обработчик. В противном случае нажатие будет обработано встроенными методами библиотеки.
"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" | действие, которое будет выполнено по нажатию по пушу:
|
"url" | ссылка динамическая или для открытия в браузере |
"priority" | приоритет пуша, принимает значения:
|
"led" | цвет индикатора |
"led_on":"300" | время включенного индикатора |
"led_of_ms":"100" | время выключенного индикатора |
"hasVibro":"true" | имеет ли вибрацию или нет |
"hasSound":"true" | имеет звук или нет |
"channel":"enkod_lib_59" | id канала |