gpt4 book ai didi

android - 查明当应用程序在后台时收到 Firebase 消息的时间

转载 作者:太空狗 更新时间:2023-10-29 15:37:46 25 4
gpt4 key购买 nike

我知道这个标题也有同样的问题,但不幸的是它没有正确回答并且被接受了!!! here

我想知道如何找出应用程序在后台时收到的 FCM 消息,以便对用户点击之前收到的消息执行一些操作。但是当应用程序处于后台时 onMessageReceived 不会被触发!

Google 了很多,没找到好的方法。

最佳答案

当应用程序在后台时,要处理来自 onMessageReceived() 的 FCM 推送通知,服务器应始终发送纯数据消息

Notification 消息只能在应用程序处于前台时处理。当应用程序在后台时,会显示自动生成的通知。当用户点击通知时,他们将返回到应用程序。包含通知和数据有效负载的消息被视为通知消息。

使用 FCM,您可以向客户端发送两种类型的消息:

  • 通知消息,有时被认为是“显示消息”。
  • 数据消息,由客户端应用处理。

通知消息是更轻量级的选项,具有 2KB 限制和一组预定义的用户可见键。数据消息允许开发人员发送最多 4KB 的自定义键值对。通知消息可以包含可选的数据有效负载,当用户点击通知时传送。

通知消息

{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
}
}

当应用程序处于后台时,通知消息会传送到通知托盘。对于前台的应用程序,消息由这些回调处理:

  • onMessageReceived() 在 Android 上。数据包中的通知 key 包含通知。

数据信息

{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data" : {
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
},
}

在 Android 上,客户端应用程序在 onMessageReceived() 中接收数据消息,并可以相应地处理键值对。

请注意这些特定于平台的更多详细信息:

  • 在 Android 上,可以在用于启动 Activity 的 Intent 中检索数据负载。

具有通知和数据有效负载的消息

{
"to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}

应用在接收包含通知和数据负载的消息时的行为取决于应用是在后台还是在前台——本质上,它在接收时是否处于 Activity 状态。

  • 在后台时,应用会在通知托盘中接收通知负载,并且仅在用户点击通知时处理数据负载。

  • 在前台时,您的应用会收到一个包含两个可用负载的消息对象。

引用

关于android - 查明当应用程序在后台时收到 Firebase 消息的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42480002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com