我有一个应用程序可以使用OneSignal接收推送通知。我做了一个通知打开处理程序,应在单击通知时打开特定的屏幕。我如何导航到没有上下文的屏幕。或如何在应用启动时打开特定屏幕。我的代码:
original.map(function(config){
return {
label:config.id,
value:config.desc
}
})
首次打开该应用程序时,我可以实现此目的,但只有在我关闭该应用程序并重新打开它的情况下,它才能打开主页。我想那是因为上下文已更改。
请帮助!
答案 0 :(得分:4)
在这里查看: https://github.com/brianegan/flutter_redux/issues/5#issuecomment-361215074
您可以为导航设置全局键:
final GlobalKey<NavigatorState> navigatorKey = new GlobalKey<NavigatorState>();
将其传递给MaterialApp:
new MaterialApp(
title: 'MyApp',
onGenerateRoute: generateRoute,
navigatorKey: key,
);
推路线:
navigatorKey.currentState.pushNamed('/someRoute');
答案 1 :(得分:0)
您可以使用这个出色的插件: https://pub.dev/packages/get
软件包中的描述:一个一致的导航库,使您可以在代码中的任何位置(无上下文)在屏幕之间导航,打开对话框并显示小吃栏。
Get.to(NextScreen()); // look at this simplicity :)
Get.back(); // pop()
Get.off(NextScreen()); // clears the previous routes and opens a new screen.