Как выполнить действие / переместить экран при открытии уведомления FCM? - PullRequest
0 голосов
/ 01 февраля 2020

В настоящее время я использую FCM React Native Firebase, где я хочу переместить экран или выполнить действие при открытии уведомления fcm, как показано на рисунке ниже:

rea

1 Ответ

0 голосов
/ 01 февраля 2020

Reaction-native-fcm устарела и больше не поддерживается. Лучше перейти к response-native-firebase.

Ниже приведен пример для response-native-firebase.

Сначала необходимо создать прослушиватель уведомлений в своем приложении. В основном лучше добавить его на компонент root верхнего уровня.

Вы можете передать соответствующие данные в объект данных полезной нагрузки уведомления. https://firebase.google.com/docs/cloud-messaging/concept-options

import firebase from 'react-native-firebase';

componentDidMount() {
      this.createNotificationListeners();
}

componentWillUnmount() {
    // Remove all the notification related listeners on unmounting the main dashboard
    if (this.notificationOpenedListener) {
      this.notificationOpenedListener();
    }
}

  /**
   * Contains all the listeners related to the Firebase notification services.
   */
  async createNotificationListeners() {
    const handleNotification = notificationOpen => {
      // Do what ever do you want, based on your notification payload
    };

    /*
     * If app is in background, listen for when a notification is clicked / tapped / opened as follows:
     * */
    try {
      this.notificationOpenedListener = firebase
        .notifications()
        .onNotificationOpened(notificationOpen => {
          console.log(
            'FirebaseDataReceiver remote notification clicked from background :',
            notificationOpen,
          );
          handleNotification(notificationOpen);
        });
    } catch (e) {
      console.log(
        'Error while clicking the remote notification from background :',
        e,
      );
    }

    /*
     * If app is closed, check if it was opened by a notification being clicked / tapped / opened as follows:
     * */
    try {
      const notificationOpen = await firebase
        .notifications()
        .getInitialNotification();
      if (notificationOpen) {
        console.log(
          'FirebaseDataReceiver remote notification clicked app start up :',
          notificationOpen,
        );
        handleNotification(notificationOpen);
      }
    } catch (e) {
      console.log(
        'Error while clicking the app was initiated by a remote notification :',
        e,
      );
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...