我正在开发一个应用程序,当我触发某些事件时,我会从服务器获取一些推送通知。
当应用程序在前台时,一切都很好,在onMessageReceived()中我得到了remoteMessage并根据它的map键值来处理它。
问题是在后台或应用程序没有运行时...我仍然在设备屏幕上收到通知,当我点击它时,活动开始。
我在活动开始后进行以下验证:
Bundle mBundle = getIntent().getExtras();
if(mBundle != null)
{
//do stuff
}
但我总是在bundle对象中得到mMap = null,这意味着我无法正确处理推送通知。
可以做些什么吗?
答案 0 :(得分:0)
<强> 1。通知消息
应用程序运行时可以获取通知消息,但如果应用程序未运行(已终止),则无法运行。它只显示通知已到达。
例如,
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
<强> 2。数据信息(也称为无声通知)
即使应用程序未运行,Data Messagegs也能正常运行。
例如,
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}