Проверьте, доступно ли подключение к Интернету в приложении Flutter

Мне нужно выполнить сетевой вызов. Но перед этим мне нужно проверить, есть ли у устройства подключение к интернету.

Это то, что я сделал до сих пор:

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

выше метод не работает.

1 ответов


на connectivity плагин заявляет в своих документах, что он предоставляет информацию только при наличии сетевого подключения, но не при подключении сети к интернету

обратите внимание, что на Android, это не гарантирует подключение к интернету. Например, приложение может иметь доступ к wifi, но это может быть VPN или отель WiFi без доступа.

можно использовать

import 'dart:io';
...
try {
  final result = await InternetAddress.lookup('google.com');
  if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
    print('connected');
  }
} on SocketException catch (_) {
  print('not connected');
}