Android FCM通知使用RemoteMessage中的数据
我有一个应用程序,使用FCM在用户之间发送消息。我已经实现了我的FirebaseMessagingService,它可以处理RemoteMessage的数据。这是RemoteMes的一个示例:Android FCM通知使用RemoteMessage中的数据,android,firebase,firebase-cloud-messaging,Android,Firebase,Firebase Cloud Messaging,我有一个应用程序,使用FCM在用户之间发送消息。我已经实现了我的FirebaseMessagingService,它可以处理RemoteMessage的数据。这是RemoteMes的一个示例: { "to" : "cZVz2c3uJBg:APA91bHW...", "data" :{"friend": "mike"}, "notification" : { "title" : "Paltrack", "sound" : "true", "click_action" : "com.wo
{
"to" : "cZVz2c3uJBg:APA91bHW...",
"data" :{"friend": "mike"},
"notification" : {
"title" : "Paltrack",
"sound" : "true",
"click_action" : "com.woutkl.groep_2.RegActivityStart"
}
}
我遇到的第一个问题是(如果这是正确的),当应用程序不在前台时,不会调用onMessageReceived。因此,要在您单击通知后执行某些操作,我将启动该活动,但现在我需要从RemoteMes访问数据,我不知道如何执行此操作。当应用程序处于后台时,同时包含数据和通知的Firebase消息将不会调用onMessageReceived。这是故意的 单击通知时,数据将添加到作为附加项启动活动的意图中 在您的活动中,获取额外的意图:
Bundle extras = getIntent().getExtras();
现在把所有的标签都放在你的附加资料里。。。并使用您需要的:
if(extras!=null){
Set<String> keysInExtras = extras.keySet();
for(String key : keysInExtras){
//find the keys you need and get the data from the bundle using those keys
}
}
if(附加值!=null){
Set keysInExtras=extras.keySet();
for(字符串键:keysInExtras){
//找到您需要的密钥,并使用这些密钥从包中获取数据
}
}
当应用程序处于后台时,同时包含数据和通知的Firebase消息将不会调用onMessageReceived。这是故意的
单击通知时,数据将添加到作为附加项启动活动的意图中
在您的活动中,获取额外的意图:
Bundle extras = getIntent().getExtras();
现在把所有的标签都放在你的附加资料里。。。并使用您需要的:
if(extras!=null){
Set<String> keysInExtras = extras.keySet();
for(String key : keysInExtras){
//find the keys you need and get the data from the bundle using those keys
}
}
if(附加值!=null){
Set keysInExtras=extras.keySet();
for(字符串键:keysInExtras){
//找到您需要的密钥,并使用这些密钥从包中获取数据
}
}
当后台应用程序当时无法从“通知”参数获取通知值时。此时,我们可以从“数据”参数中获取值。所以,无论我们想在通知中显示什么,我们都需要从服务器后端获得具有“data”和“notification”参数值的相同数据的响应
无论何时单击通知,我们都可以通过带有laucher活动的通知消息中的“数据”参数获得该通知消息
AndroidManifest.xml:
当后台应用程序无法从“通知”参数获取通知值时。此时,我们可以从“数据”参数中获取值。所以,无论我们想在通知中显示什么,我们都需要从服务器后端获得具有“data”和“notification”参数值的相同数据的响应 无论何时单击通知,我们都可以通过带有laucher活动的通知消息中的“数据”参数获得该通知消息 AndroidManifest.xml:
可能重复的可能重复的好点在这里,不要忘记目标的发射活动。我首先尝试在MainActivity中获取数据参数,但什么也得不到,因为我的启动器活动是SplashActivity而不是MainActivity!这一点很好,别忘了瞄准发射器活动。我首先尝试在MainActivity中获取数据参数,但什么也得不到,因为我的启动器活动是SplashActivity而不是MainActivity!