我已经为我的react-native app
实现了firebase cloud messaging
,现在我可以发送和接收通知。 但是现在我想像messages
一样获得Notifications Data
,点击它后立即
。为什么我需要这个?
因为我有一个简单的聊天应用程序,假设我有三个房间,room1, room2, room3
.
现在我的App
关闭了,我收到了来自room1
Notification
,然后我点击了它,此时我希望它打开我的应用程序并导航到room1 chatbox
,以及其他房间的通知。
有什么帮助吗?
注意:我使用的是 react-native-firebase v6
云消息传递仅用于从手机上的服务器发送消息。
之前,在Firebase 5上,我们有一个名为"通知"的软件包,它允许我们在您点击数据时管理数据的拦截。
从Firebase 6开始,这个软件包不再存在(好吧,在某种程度上它将变得付费,这项服务被称为Notifee,但它仍在测试中(。
您必须使用外部包,例如 react-native-push-notifications ,它允许您拦截推送通知数据。
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));
});
}