React Native Firebase 的 getInitialNotification 仅针对第一次推送通知返回通知对象
Posted
技术标签:
【中文标题】React Native Firebase 的 getInitialNotification 仅针对第一次推送通知返回通知对象【英文标题】:getInitialNotification of React Native Firebase returns notification object only for first push notification 【发布时间】:2020-11-12 03:01:24 【问题描述】:@react-native-firebase/messaging 有一个奇怪的问题。我最近更新到 v6,在 ios 上一切正常,在 android 上一切正常,除了一件事。
当收到多个推送通知时,情况如下:
-
点击一个通知会打开应用程序,
getInitialNotification()
会给我点击的通知,所以我可以处理它
完全关闭应用程序然后单击其他通知之一时,应用程序会再次打开,但getInitialNotification()
返回null
似乎用一个通知打开应用程序也会吃掉所有其他通知的数据。 我想我做错了什么,但我不知道在哪里可以搜索问题。
关于设置的一些信息
我删除了 react-native-splash-screen(没有改变任何东西) 我使用的是最新版本的 @react-native-firebase/app 和 /messaging(“@react-native-firebase/app”:“8.2.0”、“@react-native-firebase/messaging” : "7.4.2") React Native 的版本为 0.62.2 应用在useEffect
中调用getInitialNotification()
,所以在导航树的第一次渲染之后
【问题讨论】:
运气好吗?我遇到了同样的问题 【参考方案1】:messaging().onNotificationOpenedApp(remoteMessage =>
console.log(
'Notification caused app to open from background state:',
remoteMessage.notification,
);
navigation.navigate(remoteMessage.data.type);
);
添加此监听器
https://rnfirebase.io/messaging/notifications
【讨论】:
感谢您的回复。我已经实现了。但是,它是在通过推送通知启动应用程序时明确显示的,并且仅在应用程序已经运行时才调用onNotificationOpenedApp
。我弄错了吗?还是可能是时间问题?
是的,有时会发生,当应用程序已经在后台并从推送通知打开时,这需要时间。就我而言,当我按下通知时,后台应用程序位于不同的堆栈和选项卡中,onNotification 我将重定向到其他深度嵌套的堆栈。所以有时需要时间。但在调试模式下不在 APK 构建中。在 APK 中,它需要一小部分时间,具体取决于网络负载。但大多数情况下它会顺利重定向( APK Build )。因此,如果您在调试模式/连接到 npm 的设备下进行测试,这将需要时间。此外,我还必须在 Notification 上管理 15 种不同的场景。以上是关于React Native Firebase 的 getInitialNotification 仅针对第一次推送通知返回通知对象的主要内容,如果未能解决你的问题,请参考以下文章
用 react-native-firebase 编译 react-native
哪个 Firebase javascript 包应该与 React Native 一起使用?常规的“Firebase Web SDK”还是“react-native-firebase”?
使用 react-native-firebase 在 React Native 上自定义通知
react native [[DEFAULT]] firebaseapp 未初始化 react-native-firebase