Firebase 通知错误
Firebase Notification Error
我正在尝试使用 Firebase 发送通知。但是,在某些情况下,通知不会调用 onReceive 方法。
前景 = 呼叫和导航。
后台和 Kill App = onReceive 未调用。我无法获取数据并且无法重定向。
https://gist.github.com/Omurtekinn/fcbd3ba2e83925c459b22d5614c3ea00
MyFirebaseMessaging class.
如果您检查 documentation,您会看到 Android 根据有效负载以及您的应用程序是在前台还是后台以不同方式处理通知消息:
如果您的应用程序位于 前台 ,您将始终在 onMessageReceived
方法中收到通知。不管通知的有效负载。
如果它在背景你有两种情况:
通知负载:
消息传送到系统托盘,当您单击它时,它将通过 intent extras 传送到 Launch Activity。
数据负载:
消息将发送至 onMessageReceived
。
查看您的场景,您似乎有一个通知负载。您有两个选择:
1) 将负载类型更改为数据。如果您使用的是 FCM 控制台,则只能执行选项 2,因为它只会发送通知消息。
2) 在launcheractivityonCreate方法中实现消息的接收
通知基本上是这样的:
{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
}
}
如果您要添加 key/value 对,它将如下所示:
{
"to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
在您的启动器 activity 中,您会像任何其他 activity 一样在 intent extras 中收到通知,在 onCreate():
Bundle extras = getIntent().getExtras();
if(extras!=null){
String notification = extras.getString("notification");
String dats = extras.getString("data");
}
请注意,如果您使用 android O,您还需要配置 channels。
我正在尝试使用 Firebase 发送通知。但是,在某些情况下,通知不会调用 onReceive 方法。 前景 = 呼叫和导航。 后台和 Kill App = onReceive 未调用。我无法获取数据并且无法重定向。
https://gist.github.com/Omurtekinn/fcbd3ba2e83925c459b22d5614c3ea00 MyFirebaseMessaging class.
如果您检查 documentation,您会看到 Android 根据有效负载以及您的应用程序是在前台还是后台以不同方式处理通知消息:
如果您的应用程序位于 前台 ,您将始终在 onMessageReceived
方法中收到通知。不管通知的有效负载。
如果它在背景你有两种情况:
通知负载: 消息传送到系统托盘,当您单击它时,它将通过 intent extras 传送到 Launch Activity。
数据负载:
消息将发送至 onMessageReceived
。
查看您的场景,您似乎有一个通知负载。您有两个选择:
1) 将负载类型更改为数据。如果您使用的是 FCM 控制台,则只能执行选项 2,因为它只会发送通知消息。
2) 在launcheractivityonCreate方法中实现消息的接收
通知基本上是这样的:
{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
}
}
如果您要添加 key/value 对,它将如下所示:
{
"to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
在您的启动器 activity 中,您会像任何其他 activity 一样在 intent extras 中收到通知,在 onCreate():
Bundle extras = getIntent().getExtras();
if(extras!=null){
String notification = extras.getString("notification");
String dats = extras.getString("data");
}
请注意,如果您使用 android O,您还需要配置 channels。