【问题标题】:show dialog when there is a problem in the internet network互联网网络出现问题时显示对话框
【发布时间】:2019-12-31 03:54:00
【问题描述】:

我的意思是当我登录的时候,但是网络到数据库有问题,会出现一个信息对话框,提示网络有问题。我对在此处使用 else if 感到困惑..

    _login() async {
    if (formKey.currentState.validate()) {
      formKey.currentState.save();
      try {
        final response = await UserController.login({
          "username": username,
          "password": password,
        });

        if (response != null && response["success"]) {
          Http.setAccessToken(response["token"]);

          return Navigator.pushReplacement(
              context,
              MaterialPageRoute(
                builder: (context) => MainActivity(),
              ));
        } else {
          await showDialog(
            context: context,
            builder: (BuildContext context) {
              return AlertDialog(
                title: Text("Information"),
                content: Text("Your account is not registered!"),
                actions: <Widget>[
                  FlatButton(
                    child: Text("Close"),
                    onPressed: () {
                      Navigator.of(context).pop();
                    },
                  ),
                ],
              );
            },
          );
        }
      } catch (e) {
        print(e.message);
      }
    }
  }

如果网络有问题,我如何设置条件然后返回 showDialog ??

【问题讨论】:

    标签: flutter dart flutter-web


    【解决方案1】:

    查看 Flutter 团队的连接包。 https://pub.dev/packages/connectivity

    您可以侦听网络更改中的任何问题,然后在断开连接时显示快餐栏或对话框。

    我希望这会有所帮助。

    JC

    【讨论】:

    • 但是这个pub不支持web flutter
    • 在这种情况下,请在此处尝试此解决方案:stackoverflow.com/a/49648870/11216418 基本上,您将使用 try..catch 和 SocketException... 这意味着连接到您的服务器时出现问题
    • 目前,它也支持网络。我建议你 @digitaljoni 添加它的基本示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-26
    • 2016-02-05
    • 2021-12-28
    • 1970-01-01
    相关资源
    最近更新 更多