如何在应用程序后台接收FCM推送通知数据,但在前台点击

Posted

技术标签:

【中文标题】如何在应用程序后台接收FCM推送通知数据,但在前台点击【英文标题】:How to get FCM Push notification data received when app backgrounded, but clicked when foregrounded 【发布时间】:2021-09-08 17:40:48 【问题描述】:

我已经在文档中处理了这两种情况,它们是:

1/ 如果应用在前台,则处理 onMessageReceived

2/ 如果在应用程序处于后台或被终止时触发推送通知,则在启动器活动中处理有效负载附加内容。

但是我遇到了这样一种情况,当应用程序在后台时收到推送通知(我只是将它们留在那里),然后我打开应用程序并正常使用该应用程序。然后我向下滑动通知托盘,然后单击等待通知,然后应用程序就恢复了,我不知道在这种情况下有效负载会去哪里。

我还检查了有效负载附加功能是否通过getIntent().getExtras() 传递到当前活动onResume(就像它对启动器活动所做的那样),但它没有来自通知的附加负载。请注意,启动器 Activity(在我的情况下是 SplashScreen)早已不复存在。应用只是恢复当前的 Activity。

无论如何我可以处理这种类型的点击吗?或者这是一个死胡同?

感谢大家的宝贵时间。

【问题讨论】:

【参考方案1】:

将您的 Activity 的启动模式更改或添加到 singleTop。这可以在 androidManifest.xml 中通过将 android:launchMode="singleTop" 添加到 <activity> 元素来完成。

更多信息here

【讨论】:

感谢您的建议,但没有奏效。我不知道 FCM 行为是否允许附加功能......如果应用程序恢复,则“跳转”到当前 Activity,而不仅仅是启动新的启动器 Activity。 抱歉回复晚了,我现在的活动是android:launchMode="singleTop",也和其他人一起尝试过,但没有成功。

以上是关于如何在应用程序后台接收FCM推送通知数据,但在前台点击的主要内容,如果未能解决你的问题,请参考以下文章

Android - 包含 click_action 后未收到 FCM 推送通知

Unity FCM 在后台获取数据消息

推送通知未在 Android 前台显示

如何从网络向应用发送 FCM 通知

如何在接收基于 Flutter 构建的 FCM 推送通知时修复应用程序崩溃

当应用程序处于后台状态时,FCM 多个推送通知无法正常工作