Flutter防止退出


为了避免用户误触返回按钮而导致APP退出,在很多APP中都拦截了用户点击返回键的按钮,当用户在某一个时间段内点击两次时,才会认为用户是要退出(而非误触)。Flutter中可以通过WillPopScope来实现返回按钮拦截,我们看看WillPopScope的默认构造函数:

再按一次退出行为

   return WillPopScope(
 onWillPop: () {
        // 点击返回键的操作
        if (lastPopTime == null ||
            DateTime.now().difference(lastPopTime) > Duration(seconds: 2)) {
          lastPopTime = DateTime.now();
          Fluttertoast.showToast(
              msg: "再按一次退出",
              toastLength: Toast.LENGTH_SHORT,
              gravity: ToastGravity.BOTTOM,
              backgroundColor: Theme.of(context).accentColor,
              textColor: Colors.black,
              fontSize: 16.0);
        } else {
          lastPopTime = DateTime.now();

          // 退出app
          exit(0);
        }
      },
   )  
  WillPopScope用来监听用户点击返回键 
  然后我们需要先做好一个时间的判断,比如两次点击在两秒之内(可以通过difference对比两个时间的时间差)即可进行退出操作
  [^Fluttertoast]: https://pub.dev/packages/fluttertoast
  这是一个提示信息,

文章作者: Bibooo
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Bibooo !
评论
  目录