Push notification 当收到远程通知时,如何将导航推送到新的小部件?

Push notification 当收到远程通知时,如何将导航推送到新的小部件?,push-notification,flutter,firebase-cloud-messaging,Push Notification,Flutter,Firebase Cloud Messaging,我试图在我的应用程序中实现的是,当用户收到推送通知时,应用程序将推送一个新的小部件。我正确获取了通知数据,但无法使其正常工作 这是通知的侦听器 _firebaseMessaging.configure( onMessage: (Map<String, dynamic> message) async { print('on message $message'); _manageNotificationData(message);

我试图在我的应用程序中实现的是,当用户收到推送通知时,应用程序将推送一个新的小部件。我正确获取了通知数据,但无法使其正常工作

这是通知的侦听器

_firebaseMessaging.configure(
      onMessage: (Map<String, dynamic> message) async {
        print('on message $message');
        _manageNotificationData(message);
      },
      onResume: (Map<String, dynamic> message) async {
        print('on resume $message');
         _manageNotificationData(message);
      },
      onLaunch: (Map<String, dynamic> message) async {
        print('on launch $message');
        _manageNotificationData(message);
      },
    );
void\u管理通知数据(映射消息){
//当用户收到通知时,将出现一个新的小部件,以便他可以对另一个用户进行评分
如果(消息[“id”]==1){
//此数据在控制台中打印
打印(消息[“医嘱ID]”);
//这不起作用
导航器。推(
上下文
MaterialPage路线(生成器:(上下文)=>
RateProfessionalWidget(
orderId:消息[“orderId”])
),
);
}
}
我想这不会起作用,因为我在主文件中调用了Navigator.push,但在这个文件中,我是唯一可以访问通知数据的地方。我如何才能做到这一点?

确保你的应用程序(你运行的东西)是一个
StatefulWidget
,并在其状态下创建一个
GlobalKey

GlobalKey<NavigatorState> navigatorKey =
    GlobalKey<NavigatorState>(debugLabel: 'navKey');
在应用程序中,您现在可以使用
navigatorKey.currentState.push()

void _manageNotificationData(Map<String,dynamic> message){

 //When the user receives a notification, a new widget will appear so that he can rate another user

  if(message["id"] == 1){

  //This data is printed in the console
  print(message["orderId"]);

  //this is not working
    Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => 
    RateProfessionalWidget(
    orderId: message["orderId"])
    ),
  );
  }

}
GlobalKey<NavigatorState> navigatorKey =
    GlobalKey<NavigatorState>(debugLabel: 'navKey');
  child: MaterialApp(
    navigatorKey: navigatorKey,