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。。。这意味着连接到服务器时出现问题