在发现从Firebase控制台发送通知后,如果应用程序处于后台,则不会调用onMessageReceived()方法。
因此,我遵循人们的建议来使用HTTP POST请求。 我一直在使用邮递员发帖请求https://fcm.googleapis.com/fcm/send
有两个标题:
Content-Type:application / json
授权:key = ALsa ....... 6ryLiI
和身体
{
"to" : "fzgh-aHiOd8:APA91bFcKuwuVq_2gbLydHkAZf9XLUzm9vPalh7EUQT3Kyj8mcW9raAs9QvxbHaGJ4-U4RnUJwJ3UaEarbMXiQ8rHnsx9UuYBDrOI9tJYB78_Z3VVR1l7H_6PGpCkdgINx8a4vvMXD9q",
"notification" : {
"body" : "Sales!",
"title" : "ID Phone",
"icon" : "myicon"
},
"data" : {
"data" : "sales",
}
}
现在,通知确实进入我的应用程序(这很好),但它仍然不是我想要的自定义通知。即onMessageReceived()仍未被调用。
我有什么遗失的吗?
答案 0 :(得分:3)
您应该定义数据有效负载以在onmessagereceived()中获取消息。通知标记仅用于通知。
请参阅GCM documentation:
数据讯息
使用您的自定义键/值对设置数据以发送数据有效负载 客户端应用。数据消息的有效载荷最大为4KB。
例如,这是同一IM中的JSON格式的消息 如上所述的应用,其中信息封装在数据中 并且客户端应用程序应该解释内容:
{ "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "data" : { "Nick" : "Mario", "body" : "great match!", "Room" : "PortugalVSDenmark" }, }
修改强>
替换这些
Content-Type - application/json
Authorization - key=ALsa.......6ryLiI
与
Content-Type:application/json
Authorization:key=ALsa.......6ryLiI