Как получить доступ к данным уведомления после нажатия на уведомление (Firebase Cloud Messaging) - PullRequest
0 голосов
/ 28 января 2020

Я ввел firebase cloud messaging для своего react-native app, и теперь я могу отправлять и получать уведомления. Но теперь я хочу получить Notifications Data как messages, сразу после нажатия на него.

Зачем мне это нужно?

Поскольку у меня есть простое приложение для чата, и предположим, что у меня есть три комнаты, room1, room2, room3.

Теперь мой App закрыт, и я получаю Notification от room1, затем я нажимаю на него, в это время я ожидал, что он откроет мое приложение и перейдет к room1 chatbox, а также уведомления о других комнатах.

Любая помощь?

примечание: я использую response-native-firebase v6

Ответы [ 2 ]

0 голосов
/ 29 января 2020

async componentDidMount() {
        this.createNotificationListeners();
    }
    
    async createNotificationListeners() {
        this.notificationListener = firebase.notifications().onNotification((notification) => {
            console.log(':::::::::::::::::::::::::::: APPLICATION OPEN MODE :::::::::::::::::::::::::::');
            console.log(notification, 'APPLICATION OPEN');
            // Manage Notifiacation

            // firebase.notifications().removeDeliveredNotification(notification._notificationId);
        });

        const channel = new firebase.notifications.Android.Channel('fcm_FirebaseNotifiction_default_channel', 'JobApp', firebase.notifications.Android.Importance.High)
            .setDescription('DEMO NOTIFICATION DESCRIPTION');

        firebase.notifications().android.createChannel(channel);
        this.notificationOpenedListener = firebase.notifications().onNotificationOpened((notificationOpen) => {
            console.log(':::::::::::::::::::::::::::: APPLICATION WORKING IN BACKGROUND MODE  :::::::::::::::::::::::::::');
            console.log(notificationOpen.notification.data);
            const { notificationType } = notificationOpen.notification.data;
            console.log(notificationType)

            firebase.notifications().removeDeliveredNotification(notificationOpen.notification._notificationId);
        });


        const notificationOpen = await firebase.notifications().getInitialNotification();
        if (notificationOpen) {
            console.log(':::::::::::::::::::::::::::: APPLICATION CLOSED  :::::::::::::::::::::::::::');
            console.log(notificationOpen);
        }
        this.messageListener = firebase.messaging().onMessage((message) => {
            console.log(JSON.stringify(message));
        });
    }
0 голосов
/ 28 января 2020

Cloud Messaging используется только для отправки сообщений с сервера на телефон.

Раньше, на firebase 5, у нас был пакет под названием «уведомления», который позволял нам управлять перехватом данных при нажатии. на нем.

Начиная с Firebase 6, этот пакет больше не существует (ну, в некотором смысле, он станет платным, и этот сервис называется Notifee, но он все еще находится в тесте).

Вы должны использовать внешние пакеты, такие как response-native-pu sh -notifications, которые позволяют перехватывать данные уведомлений pu sh.

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