Настройка уведомлений
Необходимо настроить разрешения в манифесте:
<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)
внутри объекта ChatCenterUI.
Данные методы будут обрабатывать только пуш-уведомления, содержащие флаг принадлежности к edna Chat Center origin=threads.
Пример:
class CustomPushFcmIntentService : FirebaseMessagingService() {
override fun onNewToken(token: String) {
super.onNewToken(token)
ChatCenterUI.setFCMToken(token, appContext)
}
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 есть в нашем демо приложении.