Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 当internet网络出现问题时显示对话框_Flutter_Dart_Flutter Web - Fatal编程技术网

Flutter 当internet网络出现问题时显示对话框

Flutter 当internet网络出现问题时显示对话框,flutter,dart,flutter-web,Flutter,Dart,Flutter Web,我的意思是当我登录时,但是网络到数据库有问题,一个信息对话框就会出现,说明网络有问题。如果在这里使用,我会感到困惑 _login() async { if (formKey.currentState.validate()) { formKey.currentState.save(); try { final response = await UserController.login({ "username": usern

我的意思是当我登录时,但是网络到数据库有问题,一个信息对话框就会出现,说明网络有问题。如果在这里使用,我会感到困惑

    _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);
      }
    }
  }
\u login()异步{
if(formKey.currentState.validate()){
formKey.currentState.save();
试一试{
最终响应=等待UserController.login({
“用户名”:用户名,
“密码”:密码,
});
if(response!=null&&response[“success”]){
Http.setAccessToken(响应[“token”]);
返回Navigator.pushReplacement(
上下文
材料路线(
生成器:(上下文)=>MainActivity(),
));
}否则{
等待显示对话框(
上下文:上下文,
生成器:(BuildContext上下文){
返回警报对话框(
标题:文本(“信息”),
内容:文本(“您的帐户未注册!”),
行动:[
扁平按钮(
子项:文本(“关闭”),
已按下:(){
Navigator.of(context.pop();
},
),
],
);
},
);
}
}捕获(e){
打印(电子信息);
}
}
}

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

查看Flatter团队的连接包

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

我希望这有帮助


JC

但此发布不支持web服务在这种情况下,请在此处尝试此解决方案:基本上,您将使用try..catch and on SocketException。。。这意味着连接到服务器时出现问题