我想实现在与Firebase发送的推送通知交互时打开特定屏幕。我的理解是,我需要使用getInitialNotification()
函数,该函数在react-native-firebase v5
及更低版本中可用,但在react-native-firebase v6
中还不可用,因为Notifications包还没有准备好。除其他外,到目前为止,我已经尝试设置云消息包中可用的后台消息处理程序,但它似乎不适用于非data-only
消息:
Firebase.messaging().setBackgroundMessageHandler(async (remoteMessage) => {
await storeJSONData('notification', JSON.stringify(remoteMessage));
});
我应该降级到react-native-firebase v5
以便使用Notifications包中的getInitialNotification()
吗?还是我有其他更好的选择,比如甚至使用android本机代码?
我最终通过在firebase云消息传递之上使用react-native-push-notification
包并从中实现onNotification
函数来解决这个问题。
PushNotification.configure({
onNotification: function(notification)
{
// process the notification
console.log('NOTIFICATION:', notification);
//iOS only
notification.finish(PushNotificationIOS.FetchResult.NoData);
},
permissions: {
alert: true,
badge: true,
sound: true
},
popInitialNotification: true,
requestPermissions: true,
});