使用条件显示后台通知 - Flutter
Show background notification using conditions - Flutter
我正在开发一个应用程序,如果有其他用户喜欢他的照片,该用户将收到通知。
我能够毫无问题地处理应用内通知和应用我的条件。
很遗憾,我无法处理后台通知。
这是我目前所做的:
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
if (1 > 1) {
print('send it');
return true;
} else {
print('don\'t send it');
return false;
}
}
无论我在 _firebaseMessagingBackgroundHandler 下做什么,通知都会显示。
我的处理程序被触发,我可以在控制台中看到 print
。
我相信 FCM SDK 中还有另一个处理此通知的句柄,FirebaseMessaging.onBackgroundMessage 只是一个选项。
有什么想法吗?谢谢!
您尝试处理后台消息的方式很好,但还有更多内容需要了解 FCM 的真正工作原理。
首先,Firebase 为我们提供了两种类型的消息
通知消息
FCM 代表客户端应用程序自动向最终用户设备显示消息。通知消息有一组预定义的用户-
可见键和自定义键值对的可选数据负载
数据信息
客户端应用负责处理数据消息。数据消息有
只有没有保留键名的自定义键值对
现在对于您的场景,您应该从 Firebase
发送消息作为 Data Message
然后您可以控制它,否则,如果您从 Firebase
发送 Notification Message
] 通知会自动显示。
以下是两种不同类型 Firebase Message
的示例片段
- 通知消息:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
- 数据信息
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}
最后,我建议你看看官方文档About FCM message。
我正在开发一个应用程序,如果有其他用户喜欢他的照片,该用户将收到通知。
我能够毫无问题地处理应用内通知和应用我的条件。
很遗憾,我无法处理后台通知。
这是我目前所做的:
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
if (1 > 1) {
print('send it');
return true;
} else {
print('don\'t send it');
return false;
}
}
无论我在 _firebaseMessagingBackgroundHandler 下做什么,通知都会显示。
我的处理程序被触发,我可以在控制台中看到 print
。
我相信 FCM SDK 中还有另一个处理此通知的句柄,FirebaseMessaging.onBackgroundMessage 只是一个选项。
有什么想法吗?谢谢!
您尝试处理后台消息的方式很好,但还有更多内容需要了解 FCM 的真正工作原理。
首先,Firebase 为我们提供了两种类型的消息
通知消息
FCM 代表客户端应用程序自动向最终用户设备显示消息。通知消息有一组预定义的用户- 可见键和自定义键值对的可选数据负载
数据信息
客户端应用负责处理数据消息。数据消息有 只有没有保留键名的自定义键值对
现在对于您的场景,您应该从 Firebase
发送消息作为 Data Message
然后您可以控制它,否则,如果您从 Firebase
发送 Notification Message
] 通知会自动显示。
以下是两种不同类型 Firebase Message
- 通知消息:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
- 数据信息
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}
最后,我建议你看看官方文档About FCM message。