我有一个要执行的网络调用。但在此之前,我需要检查设备是否具有互联网连接。
这就是我到目前为止所做的:
var connectivityResult = new Connectivity().checkConnectivity();// User defined class
if (connectivityResult == ConnectivityResult.mobile ||
connectivityResult == ConnectivityResult.wifi) {*/
this.getData();
} else {
neverSatisfied();
}
上面的方法不起作用。
The 连接性 https://pub.dartlang.org/packages/connectivity#-readme-tab-插件在其文档中声明,它仅在有网络连接时提供信息,但如果网络连接到互联网则不提供信息
请注意,在 Android 上,这并不能保证连接到互联网。例如,应用程序可能可以访问 WiFi,但它可能是无法访问的 VPN 或酒店 WiFi。
您可以使用
import 'dart:io';
...
try {
final result = await InternetAddress.lookup('example.com');
if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
print('connected');
}
} on SocketException catch (_) {
print('not connected');
}
Update
The 连接性 https://pub.dev/packages/connectivity#-readme-tab-包已被弃用。使用官方 Flutter 社区连接性_plus https://pub.dev/packages/connectivity_plus包代替。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)