【发布时间】:2020-06-03 18:59:08
【问题描述】:
我想做的事
当用户点击通知托盘中的 fcm 通知时,我想导航到特定屏幕。
我的代码
对于 6.0.9 版,我已按照 pub.dev 中提到的完全相同的说明进行操作。
这是我的实现:
_fcm.configure(
onMessage: (Map<String, dynamic> message) async {
print('@onMessage: $message');
},
onResume: (Map<String, dynamic> message) async {
print('@onResume: $message');
Navigator.push(context,
MaterialPageRoute(builder: (context) => NotificationsScreen()));
},
onLaunch: (Map<String, dynamic> message) async {
print('@onLaunch: $message');
Navigator.push(context,
MaterialPageRoute(builder: (context) => NotificationsScreen()));
});
插件版本: firebase_messaging:^6.0.9
我还添加了这些配置:
app/build.gradle:
implementation 'com.google.firebase:firebase-messaging:20.1.0'
project/build.gradle:
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:'1.3.50'"
classpath 'com.google.gms:google-services:4.3.3'
预期输出
当用户点击背景中的通知时,会调用 onResume 或 onLaunch 回调并将他重定向到提到的屏幕。
实际输出
onResume 和 onLaunch 不会被调用,而 onMessage 在应用程序处于前台时被正确调用。
【问题讨论】:
-
您确定您按照pub.dev/packages/firebase_messaging 中的步骤操作了吗?它只是从第 1 步到第 4 步,它已经很好了
-
是的,我再次检查了一遍。遵循完全相同的步骤。 onMessage 回调可以完美运行,但是 onResume 和 onLaunch 很糟糕,因为它也不会产生任何异常。
-
你能删除 Navigator.push 吗?
-
我认为问题出在导航上
-
我也删除了导航器,只是留下了消息,但仍然没有结果。
标签: flutter callback firebase-cloud-messaging