我正在使用Flutter开发应用程序,并且正在使用带有firebase_messaging Flutter插件的FCM实现推送通知:
https://pub.dartlang.org/packages/firebase_messaging
在此插件的Readme.md上说,当Android设备在终止应用程序时收到数据消息时,该消息将丢失,但是当设备收到通知消息时,该消息将显示在应用托盘,无论应用已终止还是仅在后台运行。
我已经实现了此插件,并且它不具有Readme.md描述的方式。应用终止后,通知消息在我的android设备上丢失。
这是我发送到设备的样本有效负载:
var payload = {
notification: {
title: `message from somebody`,
body: `message text here`,
}
}
我可能做错了什么?我是否在有效载荷中缺少某些东西,还是其他东西?
答案 0 :(得分:1)
您是否尝试过使用Firebase控制台发送消息。使用Firebase控制台发送测试消息可能值得。 这样,您就可以消除有效载荷中存在错误的可能性。
要验证的另一件事是在应用程序中实现onMessage
onResume
和onLaunch
,并且在消息中还包含click_action: FLUTTER_NOTIFICATION_CLICK
的自定义数据键值对。
最后一件事是检查google-services.json
是否放置在正确的文件夹android/app
中,并检查android/build.gradle
和android/app/build.gradle
是否正确修改。
我希望我能提供一点帮助。让我知道这是否有效。
答案 1 :(得分:0)
当应用在android中终止且仅在应用打开或在后台运行时,firebase_messaging软件包不支持数据消息接收。
关于在Android中终止应用程序时接收数据消息的说法:
插件不支持,消息丢失。
关于通知,通知将传递到系统托盘。用户单击它打开应用程序时,如果设置了click_action:FLUTTER_NOTIFICATION_CLICK,就会启动onLaunch。
看看接收消息中的那个表: https://pub.dartlang.org/packages/firebase_messaging#-readme-tab-