如何在应用程序后台接收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 推送通知