TGViewer
Flutter Friendly Flutter Friendly @flutterfriendly · 996 subscribers
Post #356 981
⌛Привет! С вами Анна, Flutter Team Lead Friflex

В мобильных приложениях считается хорошей практикой оповестить пользователя о проблемах с подключением к Интернету.
И сегодня поговорим о том, как эффективно во Flutter-приложении отслеживать это подключение. Рассмотрим 3 инструмента, которые точно будут полезны.

◾️connectivity_plus
У этого плагина всего две основные функци.

1️⃣ checkConnectivity() — позволяет вернуть список активных типов подключения на устройстве. И здесь очень важно: полученные типы не гарантируют реальный доступ в Интернет. Это скорее чисто аппаратная проверка, подключен ли девайс к Wi-Fi, мобильному Интернету и прочему.

Для части устройств этот метод может быть полезен для определения VPN-подключения, что очень актуально сейчас. Но учтите, что на iOS и macOS тип vpn никогда не вернется, вместо него вернется просто other.


Future<void> main() async {
final connectivity = Connectivity();

final connectionsList = await connectivity.checkConnectivity();
print(connectionsList);
}


2️⃣ А вот вторая —onConnectivityChanged — представляет собой поток обновлений списка активных подключений. Через него будет удобно в реальном времени следить за изменениями через подписку.

◾️internet_connection_checker
Этот плагин уже проверит реальный доступ в Интернет.

Сделать это можно, используя базовые настройки плагина, через экземпляр InternetConnectionChecker.instance. В этом объекте уже зашиты адреса по умолчанию, куда сервис будет пытаться достучаться.


Future<void> main() async {
final hasConnection = await InternetConnectionChecker.instance.hasConnection;
print(hasConnection);
}


Здесь не забывайте про знаменитые белые списки. Если ваше приложение включено в них, то фактический доступ к серверу у него будет, а вот проверка покажет, что подключения нет.

И тут на помощь может прийти кастомный «чекер». В нем вы можете задать необходимые адреса для проверки.


Future<void> main() async {
final customChecker = InternetConnectionChecker.createInstance(
addresses: [AddressCheckOption(uri: Uri.parse('custom_resource'))],
);
final hasConnection = await customChecker.hasConnection;

print(hasConnection);
}


Кроме однократной проверки, как и в предыдущей библиотеке, можно подписаться на смену статуса через поток onStatusChange.

◾️network_info_plus
Если вам мало простого индикатора: есть Интернет или нет, этот инструмент будет точно полезен.

Он дает возможность получить более развернутые данные о Wi-Fi подключении на устройстве. Тут можно получить и название сети, и ip-адрес, и прочее-прочее.


Future<void> main() async {
final networkInfo = NetworkInfo();

print(networkInfo.getWifiName());
print(networkInfo.getWifiIP());
print(networkInfo.getWifiIPv6());
print(networkInfo.getWifiBroadcast());
print(networkInfo.getWifiBSSID());
}


Делитесь своими лучшими практиками в комментариях⬇️
  • ❤ 11
  • 🔥 7
  • 🥰 4
  • 👍 3
  • 🤩 2
  • 🤡 2
More from @flutterfriendly
  1. May 14, 2026👀Какой сложный вопрос или тема по Flutter вас сейчас беспокоят? Может, задача не идет, ба…
  2. Apr 17, 2026💭Привет! Это Роза, Flutter-разработчица Friflex! Уверена, многие из вас знакомы с Dart De…
  3. Apr 8, 2026Привет, друзья! Делимся нашей страничкой на Хабре, чтобы всегда оставаться на связи. Там е…
  4. Apr 3, 2026🌸Апрель в календаре и на экране Весна зовет обновлять визуальное: убирать темные темы и в…
  5. Apr 1, 2026Всегда с нетерпением ждем этого дня, чтобы сделать подборку ИТ-мемов Пусть поводов для улы…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →