Настройка уведомлений
Необходимо настроить разрешения в манифесте:
<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" />
Дополнительно
- Включение дебаг-логирования пуш-библиотеки:
<meta-data
android:name="com.pushserver.android.logs"
android:value="true"/>
Firebase
Для корректной работы push необходимо в приложении определить собственного наследника https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/FirebaseMessagingService. Для передачи токена в соответствующем методе наследника нужно использовать ChatCenterPushMessageHelper.setFcmToken(...). Для обработки входящего пуша нужно использовать ChatCenterPushMessageHelper.process(...). Этот метод будет обрабатывать только пуши, содержащие флаг принадлежности к edna Chat Center origin=threads.
Добавление 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>
Push-уведомления
При получении информации от Firebase ее необходимо сохранить в библиотеку.
Также необходимо прописать обработчик новых сообщений.
Для этого нужно переопределить класс FirebaseMessagingService
:
class CustomPushFcmIntentService : FirebaseMessagingService() {
override fun onNewToken(token: String) {
super.onNewToken(token)
ChatCenterPushMessageHelper.setFcmToken(token)
}
override fun onMessageReceived(message: RemoteMessage) {
super.onMessageReceived(message)
ChatCenterPushMessageHelper.process(this, message.data)
}
}
Huawei Media Services (HMS)
Подключение пушей
Процесс настройки идентичен Firebase.
Добавьте HMS в проект https://developer.huawei.com/consumer/en/codelab/HMSPushKit/index.html
При получении информации от Huawei ее необходимо сохранить в библиотеку.
Также необходимо прописать обработчик новых сообщений.
Для этого нужно переопределить класс HmsMessageService
:
class CustomPushHcmIntentService : HmsMessageService() {
override fun onNewToken(token: String) {
super.onNewToken(token)
ChatCenterPushMessageHelper.setHcmToken(token)
}
override fun onMessageReceived(message: RemoteMessage) {
super.onMessageReceived(message)
ChatCenterPushMessageHelper.process(
this,
CommonUtils.base64JsonStringToBundle(message.data)
)
}
}
И необходимо добавить обработчик в манифест:
<service
android:name=".push.CustomPushHcmIntentService"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>