如何在关闭应用程序的情况下捕获通知中的点击以重定向 firebase 消息传递中的特定页面 > 9.0

how capture click in notification with app closed to redirect a specific page in firebase messaging > 9.0

我正在使用 9.0 版的 firebase 消息传递,并希望用户在关闭应用程序时接收和点击通知时进入特定屏幕。

我目前可以在应用程序打开或最小化的情况下进行管理,但我不明白在应用程序未打开时如何执行此操作。

Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {

  await Firebase.initializeApp();
  Model model = Model();
  id = "sasassa;
  Get.offNamed("$SCREEN_ROUTE",arguments: model);
  Storage storage = Storage();
  storage.setReceivedNotification(true);
  print("teste notificação recebida");

}

FirebaseMessaging.instance.getInitialMessage().then((message){
    if (message != null){
      Model model = Model();
      id = "sasassa;
      Get.offNamed("$SCREEN_ROUTE",arguments: model);
    }
  });

  FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
    print("a");
    storage.setReceivedNotification(true);
    Model model = Model();
    id = "sasassa;
    Get.offNamed("$SCREEN_ROUTE",arguments: model);
    //Navigator.pushNamed(context, '/events');
  });


  FirebaseMessaging.onMessage.listen((RemoteMessage message) async {
    print("b");
    storage.setReceivedNotification(true);
    print("teste b $message");
    String? corpo = message.notification?.body;
    String? titulo = message.notification?.title;
    String? image = message.notification?.android?.imageUrl;
    //showMyDialog(titulo: titulo,corpo: corpo);

    print("$corpo $titulo $image");

  });

我尝试在 backgroundHandler 中使用共享首选项,但这样即使用户没有点击通知也会发生重定向。

谁能提供关于如何通过点击特定通知重定向应用关闭的说明?

PS: 我知道我需要在notification body中发送数据,我只是想了解如何在9.0或更高版本关闭应用程序时让flutter捕获点击。

使用FirebaseMessaging.instance.getInitialMessage()方法获取消息

如果应用是Closed/Killed

  FirebaseMessaging.instance
          .getInitialMessage()
          .then((RemoteMessage message) {
      print("FirebaseMessaging.getInitialMessage $message");
   });

使用FirebaseMessaging.onMessageOpenedApp方法获取消息

如果应用程序在后台

   FirebaseMessaging.onMessageOpenedApp
            .listen((RemoteMessage message) {
      print("FirebaseMessaging.onMessageOpenedApp $message");
   });

使用FirebaseMessaging.onMessage方法会收到消息

如果应用程序在前台

   FirebaseMessaging.onMessage
         .listen((RemoteMessage message) {
      print("FirebaseMessaging.onMessage $message");
   });