Android设备FCM推送通知显示异常,求助正确Payload格式
问题
我使用以下JSON作为FCM推送通知Payload:
{ "to":"[TOKEN]", "priority":"high", "content-available":true, "notification":{ "ACTION":"false", "FIELD":"item1", "TITLE":"Title Here", "BODY":"This is the body" } }
推送可正常送达并被目标接收,接收后的Payload如下(此部分无问题):
{ "data": { "gcm.notification.TITLE": "Title Here", "gcm.notification.ACTION": "false", "gcm.notification.FIELD": "item1", "gcm.notification.BODY": "This is the body" }, "from": "[POINTER]", "priority": "high", "fcmMessageId": "07964eab-c1a5-46ac-a32d-c7c1a24fe28b" }
但我的Android设备上的通知显示异常(如图所示)。我确信问题很简单,但找不到合适的格式示例,请问我忽略了什么?
解决方法
问题出在FCM notification字段的键名使用上:FCM对通知的标准字段(标题、内容)要求使用小写键名,你用了大写的TITLE、BODY,Android系统无法将其识别为标准通知字段,导致展示异常。另外,ACTION、FIELD这类自定义字段不应该放在notification中,需单独放到data字段里。
修正后的Payload示例:
{ "to":"[TOKEN]", "priority":"high", "content-available":true, "notification":{ "title":"Title Here", "body":"This is the body" }, "data": { "ACTION":"false", "FIELD":"item1" } }
调整后Android系统能正确识别title和body来展示通知,自定义字段也会在data中正常传递。
内容的提问来源于stack exchange,提问作者SkizzlePig
相关产品推荐
相关产品推荐

