请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Android真机跳转H5点击左上角关闭图标直接退出了?

我看了下,Navigator.pop(context);走完后,pop方法走执行了一次??,然后就走到SystemNavigator.pop();

  ///返回上一页
  static pop(BuildContext context) {
    if (Navigator.canPop(context)) {
      Navigator.pop(context);
    } else {
      //退出APP
      SystemNavigator.pop();
    }
  }

正在回答 回答被采纳积分+3

1回答

CrazyCodeBoy 2024-08-16 08:33:46
你是连续点击两次吗?理论上不应该调用两次的,或者你录个视频发出来看一看
0 回复 有任何疑惑可以回复我~
  • 我也遇到了这个问题,我录了一个视频怎么发出来?
    回复 有任何疑惑可以回复我~ 2025-07-30 16:47:41
  • 问题出在PopScope.onPopInvoked(bool didPop),当didPop==true时直接return
    onPopInvokedWithResult: (bool didPop, Object? result) async {
            if (didPop) {
              return;
            }
    
            if (await controller.canGoBack()) {
              // 返回H5的上一页
              controller.goBack();
            } else {
              if (context.mounted) NavigatorUtil.pop(context);
            }
          },
    官方api:https://api.flutter.dev/flutter/widgets/PopScope-class.html 给的例子也是当didPop==true时直接return,但是我还是没看懂didPop的意思,老师有空的时候能讲解一下吗
    回复 有任何疑惑可以回复我~ 2025-07-30 17:33:44
  • 使用getx来处理返回操作可以解决这个问题
    ///返回上一页
      static pop(BuildContext context) {
        // if (Navigator.canPop(context)) {
        //   Navigator.pop(context);
        // } else {
        //   //退出APP
        //   SystemNavigator.pop();
        // }
        //使用getx返回上一页
        Get.back();
      }
    回复 有任何疑惑可以回复我~ 2025-07-31 08:48:39
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号