通过FCM收到推送通知后的Flutter Navigation

时间:2020-03-06 17:47:56

标签: flutter dart firebase-cloud-messaging

我的应用程序的结构如下:

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。 我不知道为什么也许有人可以帮助我。

0 个答案:

没有答案