我正在使用 @react-native-firebase/app 和 @react-native-firebase/messaging 设置 @notifee/react-native 来显示通知。我在所有 3 种情况(前台、后台和被杀)中都正确接收了通知。 在我的 index.js 中,我设置了这些并正在工作:
notifee.onBackgroundEvent(async ({ type, detail }) => {
// do screen redirection by using the custom data from the payload
)
messaging().onMessage(onMessageReceived);
messaging().setBackgroundMessageHandler(onMessageReceived);
onMessageReceived 是处理数据的函数,notifee 用于显示通知。
notifee.displayNotification({
id: notification.messageId,
title: title,
body: messageBody,
data: notification.data,
android: {
channelId: 'default',
pressAction: {
id: 'default',
},
}
})
notifee.getInitialNotification()
也在工作,并且正在发送我用来执行重定向的有效负载。
我的问题是前台通知。
我期望它如何工作 应用程序位于屏幕上,会出现一条通知,按下后它会执行一些操作(在我的情况下是屏幕重定向)
它实际上是如何工作的
尝试使用 notifee.onForegroundEvent() 来处理。
// handle click notification that clicked from foreground state by notifee
const unsubscribeForegroundNotifee = notifee.onForegroundEvent(({ type, detail }) => {
const notificationDetail = detail.notification;
console.log('notifee foreground state ...', notificationDetail)
if (type === EventType.PRESS) {
console.log('user pressed from the foreground state')
handlePushNotification(notificationDetail, false);
}
});