4 回答
TA贡献1803条经验 获得超6个赞
推送消息有3种类型
通知
数据
和两者
推送消息基本上是一个 json 负载:
payload:{
notificacion...
data
}
每种类型的推送消息的规则是不同的。在您的情况下,您正在使用 Firebase Web 控制台并添加自定义数据,这意味着您的有效负载将包含通知和数据。
对于组合类型,背景中的行为是使用默认通知(NotificationCompat,视觉类型)并打开清单中注册的默认活动。在活动中,您可以获得数据。
假设您的默认活动称为 MainActivity
public class MainActivity {
onCreate...{
//... usual stuff
Intent fcmIntent = getIntent();
if fcmIntent != null
//check the extras and forward them to the next activity if needed
}
}
TA贡献1864条经验 获得超6个赞
您需要在 firebase 通知数据集中设置 click_action 才能从后台接收数据并实现 onMessageReceived 来处理前台数据
TA贡献1831条经验 获得超4个赞
我解决了这个购买处理通知,handleIntent当应用程序被杀死时,在后台和前台。我完全忽略了该onMessageReceived(@NonNull RemoteMessage message)方法,因为当应用程序处于后台时它似乎不起作用。
@Override
public void handleIntent(Intent intent) {
Log.d( "FCM", "handleIntent \n"+intent.getStringExtra("data"));
String messageTitle = intent.getStringExtra("title");
String messageBody = intent.getStringExtra("body");
//from here pass the values to a method to show your notification.
}
在您的活动中,您将能够从意图中检索任何数据。
要重定向到您想要的活动,您必须将 click_action 添加到您的负载中。这是我的有效负载的样子:
"notification": {
"body": "Your message is here",
"title": "Hey Robby",
"discount_code": "baba-blacksheep",
"uid": "2",
"click_action": "OPEN_ACTIVITY_FROM_NOTIFICATION"
}
添加回答
举报