如何在不点击通知的情况下从通知中获取数据(firebase 云消息传递和本机反应)
Posted
技术标签:
【中文标题】如何在不点击通知的情况下从通知中获取数据(firebase 云消息传递和本机反应)【英文标题】:How to get data from notification, without clicking on notifications (firebase cloud messagin and react native) 【发布时间】:2022-01-12 11:43:22 【问题描述】:现在我可以在应用打开、最小化或关闭时处理消息,但是当我点击通知时。如果用户在没有通知的情况下登录应用程序,如何处理消息?
useEffect(() =>
messaging().setBackgroundMessageHandler(async remoteMessage =>
handlerMessage(remoteMessage)
setInitialRoute('Messenger')
);
messaging().onMessage(async remoteMessage =>
handlerMessage(remoteMessage);
);
messaging()
.getInitialNotification()
.then(remoteMessage =>
if (remoteMessage)
handlerMessage(remoteMessage);
setInitialRoute('Messenger')
);
, []);
【问题讨论】:
【参考方案1】:首先,您的“setBackgroundMessageHandler”应该位于您的index.js
中,就像react-native-firebase docs 中提到的那样。你应该再看看那个。现在回答您的问题:您希望处理在您的应用处于后台或退出状态时发送的 fcmNotification 中的数据。您的 setBackgroundMessageHandler 不允许更新任何 UI(例如,通过 state ,如文档中所述)。但是它可以执行网络请求或更新本地存储。这就是你应该做的。当消息通过 backgroundHandler 到达时,更新您的 LocalStorage。在您的应用程序的下一次启动时,您可以检查 LocalStorage 是否包含来自 backgroundHander 处理的消息的数据。如果是,请对其进行处理并在之后将其删除,以便下一次 App 启动不会触发对旧数据的操作。如果不是,-好吧-什么都不做。
【讨论】:
以上是关于如何在不点击通知的情况下从通知中获取数据(firebase 云消息传递和本机反应)的主要内容,如果未能解决你的问题,请参考以下文章
如何在不与 MainActivity 交互的情况下从通知中打开片段页面?
如何在不使用index.js文件中的触发器功能的情况下从Firestore数据库读取数据?
当应用程序处于状态后台或被杀死时,如何在不点击通知的情况下存储 iOS 远程通知?