我的应用程序的结构如下:
RootPage->已验证 ? LoadingScreen(在加载当前用户之后,该用户导航到HomeScreen) :SignUpPage
在主屏幕中,有一个5个孩子的PageView,我想在打开推送通知后导航到页面索引3。
我在HomeScreen初始化中调用fcm侦听器
首先,我没有延迟就尝试了它,但这根本不起作用。
onResume: (Map<String, dynamic> message) async {
Navigator.of(context).pushNamedAndRemoveUntil(
'/home', (Route<dynamic> route) => false).then((_) => pageController.jumpToPage(3));
}
然后我像打印语句那样使用了类似的延迟来测试它,并且它起作用了!
onResume: (Map<String, dynamic> message) async {
Navigator.of(context).pushNamedAndRemoveUntil(
'/home', (Route<dynamic> route) => false);
Future.delayed(Duration(milliseconds: 2000))
.then((_) => print("Jumped to page index 3"));
}
所以我尝试跳到页面索引3
onResume: (Map<String, dynamic> message) async {
Navigator.of(context).pushNamedAndRemoveUntil(
'/home', (Route<dynamic> route) => false);
Future.delayed(Duration(milliseconds: 2000))
.then((_) => pageController.jumpToPage(3));
}
使用此代码,可以导航到HomeScreen,但在恢复应用程序后无法跳转到索引3。 我不知道为什么也许有人可以帮助我。