React Native - Не удается получить доступ к Firebase Push Notification на переднем плане в Android - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь реализовать push-уведомления в React Native с консольным приложением Firebase, следуя этой статье:

React Native: интеграция push-уведомлений с использованием FCM

В Android я могу получать уведомления, когда приложение находится в фоновом режиме, но не может получать на переднем плане.Использование этого метода для получения уведомлений:

async createNotificationListeners() {
  /*
   * Triggered when a particular notification has been received in foreground
   * */
  this.notificationListener = firebase
    .notifications()
    .onNotification(notification => {
      console.log("fg", notification);
      const { title, body } = notification;
      this.showAlert(title, body);
    });

  /*
   * If app is in background, listen for when a notification is clicked / tapped / opened as follows:
   * */
  this.notificationOpenedListener = firebase
    .notifications()
    .onNotificationOpened(notificationOpen => {
      console.log("bg", notificationOpen);
      const { title, body } = notificationOpen.notification;
      this.showAlert(title, body);
    });

  /*
   * If app is closed, check if it was opened by a notification being clicked / tapped / opened as follows:
   * */
  const notificationOpen = await firebase
    .notifications()
    .getInitialNotification();
  if (notificationOpen) {
    console.log("bg", notificationOpen);
    const { title, body } = notificationOpen.notification;
    this.showAlert(title, body);
  }
  /*
   * Triggered for data only payload in foreground
   * */
  this.messageListener = firebase.messaging().onMessage(message => {
    //process data message
    console.log("fg", JSON.stringify(message));
  });
}

Здесь firebase.notifications().onNotification или firebase.messaging().onMessage() вообще не запускаются.

В других решениях это потому, что из Android 8 вам нужно создать канал, но я не могу найти никакой опции для создания канала при отправке уведомления от FCM композитор уведомлений .

1 Ответ

0 голосов
/ 23 февраля 2019

Abdul,

Необходимо сделать канал уведомлений, используя firebase на устройстве.

const channel = new firebase.notifications.Android
  .Channel('default', 'Default Channel', firebase.notifications.Android.Importance.Max)
  .setDescription('The default notification channel.')

firebase.notifications().android.createChannel(channel)

Это создаст канал, вы можете вызывать его столько раз, сколько захотите (в соответствии с документами).Ваш прослушиватель onNotification выглядит нормально, вам просто нужно установить канал Android на входящее уведомление.

  notification.android.setChannelId('default')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...