Перейти к основному содержимому
Версия: 5.5.0

Настройка уведомлений

Необходимо настроить разрешения в манифесте:

<permission android:name="${applicationId}.permission.pushserver.RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="${applicationId}.permission.pushserver.RECEIVE" />

Firebase

Для корректной работы push необходимо в приложении определить собственного наследника https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/FirebaseMessagingService. Для передачи токена в соответствующем методе наследника нужно в объекте ChatCenterUI использовать метод setFcmToken(...). Чтобы передать сообщение для обработки и отображения в sdk, вызовите метод handleFCMMessage(data) или handlePushMessage(bundle). Данные методы будут обрабатывать только пуш-уведомления, содержащие флаг принадлежности к edna Chat Center origin=threads.

Пример:

class CustomPushFcmIntentService : FirebaseMessagingService() {

override fun onNewToken(token: String) {
super.onNewToken(token)
chatCenterUI.setFcmToken(token)
}

override fun onMessageReceived(message: RemoteMessage) {
super.onMessageReceived(message)
chatCenterUI.handleFCMMessage(message.data)
}
}

Добавление google-services.json

Возможны два варианта:

  • Используя ваш аккаунт Firebase - cформируйте google-services.json. Для регистрации в системе сообщите ваш project_number и API_KEY из консоли Firebase (не из google-services.json).
  • Используя наш аккаунт Firebase - сообщите applicationId вашего приложения, мы пришлем google-services.json.

google-services.json необходимо добавить к проекту рядом с AndroidManifest.xml

Настройка manifest

Регистрация обработчика:

<service android:name=".push.CustomPushFcmIntentService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>

Huawei Media Services (HMS)

Процесс настройки идентичен Firebase, метод для регистрации токена: setHcmToken(...) и метод для обработки сообщений handlePushMessage(bundle: Bundle). Данные методы будут обрабатывать только пуш-уведомления, содержащие флаг принадлежности к edna Chat Center origin=threads.

Кроме того мы рекомендуем при инициализации библиотеки запускать метод:

HCMTokenRefresher.requestToken(this)

Пример запуска и самого класса HCMTokenRefresher есть в нашем демо приложении.