Перейти к основному содержимому
Версия: 4.31.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" />

Дополнительно

  • Включение дебаг-логирования пуш-библиотеки:
<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>

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

HCMTokenRefresher.requestToken(this)

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