颤动通知路由

时间:2020-07-06 10:50:59

标签: firebase flutter push-notification firebase-cloud-messaging

我正在使用Firebase向我的应用发送通知。我通过设置命名路由来设置基本路由。问题在于屏幕堆叠起来。因此,如果我的命名路线打开了屏幕B,并且我再次最小化了该应用程序并发送了另一个通知,那么新的屏幕B将被添加到树中。这意味着从屏幕B导航回到原来的屏幕B(而不是主屏幕)。

onGenerateRoute

onGenerateRoute: (RouteSettings settings) {
  dynamic args = settings.arguments;
  var routes = <String, WidgetBuilder>{
      "/": (ctx) => MainLoader(),
      "/userChat": (ctx) => ChatUserWidget(uid: args['uid'], userName: args['userName'], userPic: args['userPic']),
  };
  WidgetBuilder builder = routes[settings.name];
  return MaterialPageRoute(builder: (ctx) => builder(ctx));
},

以及通知点击句柄

 // also tried route.settings.name != '/userChat'
 NAV_KEY.currentState.popUntil((route) => route is PageRoute);
 NAV_KEY.currentState.pushNamed(
   '/userChat',
   arguments: {'uid': uid, 'userPic': pic, 'userName': name}
 );

我想要的东西: 我希望新的命名路由替换先前的路由,以免它们堆叠在一起。我以为调用pop可以解决问题,但不会删除先前的路由。我想念什么?

希望您能提供帮助,谢谢!

0 个答案:

没有答案