[英]Connectivity page in Flutter
我尝试使用评分最高的答案: 检查 Flutter 应用程序上是否有可用的 Internet 连接以检查我是否有 Internet 连接,但我需要创建一个页面,显示如果 catch 返回错误时没有信号的文本,但是我不知道如何在 flutter 中执行此操作。 然后如果没有错误,则返回正常的主菜单页面。 谢谢
这是一个快速的解决方案,但可能不是最好的:
使用您提供的链接,我们可以像这样创建 function:
Future<bool> _checkIfConnected() async {
try {
final result = await InternetAddress.lookup('google.com');
if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
print('connected');
}
return true;
} on SocketException catch (_) {
print('not connected');
return false;
}
}
这将检查您是否已连接,并返回一个带有 bool 值的未来,该值表明您的连接是否成功。
然后在您的小部件上,您可以使用这样的未来构建器:
FutureBuilder(
future: _checkIfConnected(),
builder: (context, isConnected) =>
isConnected.connectionState == ConnectionState.done
? isConnected.data
? // your main menu here //
: Center(
child: Text('no signal'),
)
: CircularProgressIndicator(),
)
由于连接检查返回一个未来,因此您必须在此处使用未来构建器。 它只是根据您未来的 state 返回一个小部件。 更多关于未来建设者的信息在这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.