【发布时间】:2021-02-06 06:04:10
【问题描述】:
我在我的项目中使用connectivity 包来检查互联网连接。
文件main.dart代码:
StreamProvider<ConnectivityResult>(
create: (context) =>
InternetConnectionService().connectionStatusController.stream,
child: MaterialApp(
.....
在每个屏幕上,我都会像这样检查互联网连接:
bool hasConnection;
void checkConnectivity(context) async {
var connectivityResult = Provider.of<ConnectivityResult>(context);
if (connectivityResult == ConnectivityResult.none ||
connectivityResult == null) {
setState(() {
hasConnection = false;
});
} else {
setState(() {
hasConnection = true;
});
}
}
Widget build(BuildContext context) {
checkConnectivity(context);
return hasConnection == true
? Scaffold()
: NoInternetScreen();
}
我如何从根或一个小部件的每个屏幕上全局检查连接而不显示连接屏幕?
【问题讨论】:
-
你不能把
checkConnectivity放在主文件里吗? -
是的,我可以做到@JohnJoe 在这种情况下可以在任何地方工作吗?我必须怎么做,你能举个例子吗?
-
是的,可以在任何地方工作。只需使用您在每个屏幕上提供的小部件构建代码到您的主文件。
标签: flutter dart flutter-dependencies connectivity