我从服务器收到这种格式的推送通知。
{
title: messageTitle,
body: messageBody,
subtitle: messageSubtitle
}
在我的android项目中,我使用以下代码读取了通知。
remoteMessage.getNotification().getTitle();
remoteMessage.getNotification().getBody();
以上两行给了我Title
和Body
,但我无法理解如何读取subtitle
属性。
答案 0 :(得分:1)
// remoteMessage是RemoteMessage的引用
`val data = remoteMessage.data
if(data.isNotEmpty())
{
if (data.containsKey("title"))
title = data["title"].toString()
if (data.containsKey("body"))
body = data["path"].toString()
if(data.containsKey("subtitle"))
subtitle = data["subtitle"].toString()
if(data.containsKey("notifyId"))
notifyId = data["notifyId"]?.toInt()
}`
答案 1 :(得分:1)
标准通知格式不包含字幕,因此没有获取方法,要获取字幕消息,请使用 data 键。
标准通知格式
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
如果需要字幕,请在数据字段中添加字幕,然后使用getData()方法获取字幕
自定义字幕通知
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"subtitle" : "Mario",
"subHeading" : "PortugalVSDenmark"
}
}
}
答案 2 :(得分:0)
要接收带有自定义数据的FCM通知,我们需要按以下方式检查数据有效负载:-
在后台,应用程序会在 通知托盘,仅在用户使用时处理数据有效载荷 点击通知。
在前台时,您的应用会收到一个 具有两个有效负载的消息对象。
在情况2中,您只需检查以下内容即可:-
String customData = remoteMessage.getData().get("customData");
对于第一种情况,请参考答案;-
handle notification with custom data
希望这会有所帮助。