我有一个在后台的Android应用程序。我已经在Firebase注册了它,并且能够成功检索它的令牌,并通过Firebase控制台管理器(FCM(向其发送消息。
当我通过 FCM 发送测试消息时,当应用程序位于前台时
onMessageReceived(remoteMessage:RemoteMessage)
触发了我的FirebaseMessagingService
派生类的回调 API。然后,我可以调用remoteMessage.notification!!.body
并获取其有效负载。这是记录的行为,因此它按预期工作。
当应用程序在后台运行时(假设我按 Home 键(,并且我发送测试消息,该事件不会被调用,而是在 Android 设备上显示通知,这也是预期的行为。目前为止,一切都好。
但是,当我单击通知通道中的通知时,它会将应用程序带到前台。但是,当应用程序像这样启动时 -如何检索推送通知有效负载?onMessageReceived
没有触发,我很难在 Android 的文档中找到答案。
关于如何获得它的任何指示?
谢谢
事实证明,这个问题提供了我一直在寻找的答案。TL;DR - 在Activity
的intent
变量的extras
字段中查找
Firebase (FCM(:打开活动记录并在通知点击时传递数据。 安卓
我不确定我下面的解决方案是最好的。但我认为您可以将消息保存到share preferences
.并把它带到另一个你想要的地方。
override fun onMessageReceived(p0: RemoteMessage) {
//TODO save it to share preferences
}
如果你找到它,给我另一个更好的解决方案。非常感谢。