我的问题似乎与这个firebase_messaging onResume和onLaunch不工作相似,但我认为该解决方案对我没有用,因为我已经在尝试访问data属性中的字段。
当应用程序正在运行时,我当前正在向用户显示推送通知,这部分工作正常。 但是,我还想在应用程序处于后台时显示通知,并且当用户单击它时,他们应该收到警报消息。
如果在onResume方法中执行此操作,则当我打开通知时,我会在控制台上看到打印的消息和警报消息。
当应用程序正在运行时,我当前正在向用户显示推送通知,这部分工作正常。 但是,我还想在应用程序处于后台时显示通知,并且当用户单击它时,他们应该收到警报消息。
如果在onResume方法中执行此操作,则当我打开通知时,我会在控制台上看到打印的消息和警报消息。
onResume: (Map<String, dynamic> message) async {
print("onResume: $message");
Alert(context: context, title: 'Hi User!').show();
}
然而,如果我尝试访问标题中的数据属性,我会看到控制台上打印的消息,但我现在没有看到任何提示
onResume: (Map<String, dynamic> message) async {
print("onResume: $message");
Alert(context: context, title: message['data']['user']['name']).show();
}
当应用程序在onMessage
属性中运行时,同一段代码可以工作,但是对于onLaunch
和onResume
,我看到了上述描述的行为。下面是来自控制台的日志记录:
W/awesome_projec(13005): Accessing hidden method Landroid/os/WorkSource;->add(I)Z (light greylist, reflection)
W/awesome_projec(13005): Accessing hidden method Landroid/os/WorkSource;->add(ILjava/lang/String;)Z (light greylist, reflection)
W/awesome_projec(13005): Accessing hidden method Landroid/os/WorkSource;->size()I (light greylist, reflection)
W/awesome_projec(13005): Accessing hidden method Landroid/os/WorkSource;->get(I)I (light greylist, reflection)
W/awesome_projec(13005): Accessing hidden method Landroid/os/WorkSource;->getName(I)Ljava/lang/String; (light greylist, reflection)
E/FlutterFcmService(13005): Fatal: failed to find callback
W/FirebaseMessaging(13005): Missing Default Notification Channel metadata in AndroidManifest. Default value will be used.
E/FlutterFcmService(13005): Fatal: failed to find callback
I/flutter (13005): onResume: {notification: {}, data: {collapse_key: com.example.awesome_project, google.original_priority: high, google.sent_time: 15751462256, google.delivered_priority: high, google.ttl: 2419200, from: 554610817622, location: {"latitude":24.6351,"longitude":70.2764}, user: {"phoneNumber":"1274545332","name":"Bobby94"}, google.message_id: 0:157514622564xxx}}