我在 Flutter 中创建了一个小应用程序,并使用 GetX 作为导航的状态管理器。当我收到通知时,我想导航到特定页面,并且它工作正常。但是,当我在查看特定页面后按后退按钮时,应用程序将关闭,而不是导航回主页。
这是我在收到通知时用来处理导航的代码:
void handleMessage(RemoteMessage? message) {
if (message == null) return;
final data = message.data;
Get.to(() => ViewNewsScreen(url: data["news_url"]));
}
问题是,从通知中打开 ViewNewsScreen 后,按后退按钮会退出应用程序。我希望它返回主页。
我没有使用任何命名路线,并且更愿意坚持使用 GetX 导航系统。我该如何解决这个问题?
如有任何帮助,我们将不胜感激!
如果您想确保在收到通知后按后退按钮始终返回主屏幕,您可以在 ViewNewsScreen 中自定义后退按钮行为。
将 ViewNewsScreen 包装在 WillPopScope 中并定义后退按钮行为:
class ViewNewsScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
// Navigate back to the home screen when back button is pressed
Get.offAll(() => HomeScreen());
return false; // Prevent the default back navigation
},
child: Scaffold(
appBar: AppBar(title: Text("View News")),
body: Center(child: Text("News Details")),
),
);
}
}