flutter - 检查 Flutter 应用上是否有可用的 Internet 连接

我有一个要执行的网络调用。但在此之前,我需要检查设备是否有互联网连接。

这是我到目前为止所做的:

  var connectivityResult = new Connectivity().checkConnectivity();// User defined class
    if (connectivityResult == ConnectivityResult.mobile ||
        connectivityResult == ConnectivityResult.wifi) {*/
    this.getData();
    } else {
      neverSatisfied();
    }

上述方法无效。

最佳答案

connectivity插件在其文档中声明它仅在有网络连接时提供信息,但在网络连接到 Internet 时不提供信息

Note that on Android, this does not guarantee connection to Internet. For instance, the app might have wifi access but it might be a VPN or a hotel WiFi with no access.

你可以使用

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');
}

更新

connectivity包已弃用。使用官方 Flutter 社区 connectivity_plus而是打包。

https://stackoverflow.com/questions/49648022/

相关文章:

android - 滑动列表项以获取更多选项(Flutter)

dart - Flutter - 如何在 AppBar 不存在时设置状态栏颜色

flutter - Flutter-建立游戏的良好基础吗?

dart - 在没有动画的情况下替换 MaterialApp 中的初始路由?

dart - flutter : Bad state: Stream has already bee

flutter - Flutter 中的生命周期

dart - Flutter 在 initState 方法中获取上下文

flutter - 另一个异常被抛出 : type 'MyApp' is not a subtype

flutter - 如何强制重启 Flutter 应用程序(在生产模式下)?

dart - 如何在 Flutter 中设置主屏幕的背景颜色?