Я внедряю службу третьей части в своем приложении (FreshChat, сервис, позволяющий интегрировать службу поддержки в приложение или веб-сайт), и все идет хорошо, за исключением push-уведомлений для чатов. Freshchat работает через Firebase (и push-уведомления firebase не доставляют проблем), но уведомления freshat не работают. Я следовал официальной документации freshchat, но есть устаревшие методы и определенно не работают (я много пробовал)
Вот код Firebase Cloud Messaging:
public class FireBase extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage message) {
super.onMessageReceived(message);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "channel_id")
.setContentTitle(message.getNotification().getTitle())
.setContentText(message.getNotification().getBody())
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setStyle(new NotificationCompat.BigTextStyle())
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
.setSmallIcon(R.mipmap.ic_launcher)
.setAutoCancel(true);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
}
И выдержка из документации FreshChat:
7.1 Подключение Freshchat с FCM
Если вы еще не интегрировали FCM, сделайте это, следуя приведенным здесь инструкциям. После выполнения шагов FCM для интеграции выполните следующие 2 шага для подключения Freshchat и FCM
Шаг 1. Отправка токена регистрацииВ реализации приложения FirebaseInstanceIdService отправьте токен Freshchat следующим образом
Java
@Override
public void onTokenRefresh() {
String token = FirebaseInstanceId.getInstance().getToken();
Freshchat.getInstance(this).setPushRegistrationToken(token);
}
Шаг 2. Обработка сообщения FCMВ реализации приложения FirebaseMessagingService передайте объект RemoteMessage в Freshchat, если это уведомление Freshchat.
Java
public void onMessageReceived(RemoteMessage remoteMessage) {
if (Freshchat.isFreshchatNotification(remoteMessage)) {
Freshchat.getInstance(this).handleFcmMessage(context, remoteMessage);
} else {
//Handle notifications with data payload for your app
}
}
Я пытался сделать это с помощью документации, но просто не работает, вы можете мне помочь? Заранее спасибо!
Вот также полная документация FreshChat: https://support.freshchat.com/support/solutions/articles/229319-freshchat-android-sdk-integration-steps