Flutter GetX - 收到通知后导航到特定页面,但按后退返回主页

问题描述 投票:0回答:1

我在 Flutter 中创建了一个小应用程序,并使用 GetX 作为导航的状态管理器。当我收到通知时,我想导航到特定页面,并且它工作正常。但是,当我在查看特定页面后按后退按钮时,应用程序将关闭,而不是导航回主页。

这是我在收到通知时用来处理导航的代码:

void handleMessage(RemoteMessage? message) {
  if (message == null) return;

  final data = message.data;
  Get.to(() => ViewNewsScreen(url: data["news_url"]));
}

问题是,从通知中打开 ViewNewsScreen 后,按后退按钮会退出应用程序。我希望它返回主页。

我没有使用任何命名路线,并且更愿意坚持使用 GetX 导航系统。我该如何解决这个问题?

如有任何帮助,我们将不胜感激!

flutter flutter-getx
1个回答
0
投票

如果您想确保在收到通知后按后退按钮始终返回主屏幕,您可以在 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")),
      ),
    );
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.