当我单击flutter中的通知时,我导航到一个特定的页面,但是由于我在MyApp小部件中为home参数指定的类,它没有重定向到我想要的页面。
当我给予这个给材料页主页;
home: ResponsiveSizer(
builder: (context, orientation, screenType) {
return const HomeScreen();
},
),
它正在工作,但当我用LoginScreen更改返回类时;
home: ResponsiveSizer(
builder: (context, orientation, screenType) {
return const LoginScreen();
},
),
导航过程不工作;
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
const SpecificScreen(whereCome: "notification")));
难道它不导航,因为它是在同一树小部件树LoginScreen()和Specific Screen()?
如何解决此问题?
2条答案
按热度按时间fhg3lkii1#
如果应用程序已关闭,则onDidReceiveNotificationResponse函数将不会调用,只有应用程序才会打开,否则如果应用程序已打开,则此方法将起作用
我通过以下操作解决了这个问题:
创建一个指示器来检查通知是否打开,您可以使用数据库来检查最后一个通知发布的内容,并检查它是否打开
yiytaume2#
导航可能不起作用,因为LoginScreen是应用程序的初始屏幕,并且在MaterialApp中设置为home参数。当您导航到SpecificScreen时,您尝试将新路线推送到导航器堆栈中,但是,由于导航器已经在LoginScreen路线上,因此导航不起作用。
要解决此问题,您必须在MaterialApp中将home参数更改为空Scaffold,然后使用Navigator小部件在屏幕之间导航。