[英]Is there any way in flutter to check internet connectivity without using "provider"?
flutter 中是否有任何方法可以在不使用“提供者”的情況下檢查互聯網連接? 我試過了,對我來說似乎不太好。 提前致謝
使用這個 package: https://pub.dev/packages/connectivity_plus
import 'package:connectivity_plus/connectivity_plus.dart';
var connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult == ConnectivityResult.mobile) {
// I am connected to a mobile network.
} else if (connectivityResult == ConnectivityResult.wifi) {
// I am connected to a wifi network.
}
import 'dart:io';
Future<bool> checkNetwork() async {
bool isConnected = false;
try {
final result = await InternetAddress.lookup('google.com');
if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
isConnected = true;
}
} on SocketException catch (_) {
isConnected = false;
}
return isConnected;
}
用途:
if(await checkNetwork()){
print('connected to internet');
}
else{
print('disconnect');
}
使用這個 Package https://pub.dev/packages/connectivity_plus
在開始時使用 none 初始化 Connectivity 結果。
ConnectivityResult _connectionStatus = ConnectivityResult.none;
final Connectivity _connectivity = Connectivity();
對於 stream,如果在應用程序中間連接/斷開互聯網。
late StreamSubscription<ConnectivityResult> _connectivitySubscription;
從 initstate 調用 function
Future<void> initConnectivity() async {
late ConnectivityResult result;
try {
result = await _connectivity.checkConnectivity();
} on PlatformException catch (e) {
print(e);
return;
}
if (!mounted) {
return Future.value(null);
}
return _updateConnectionStatus(result);
}
_connectivitySubscription = _connectivity.onConnectivityChanged.listen(_updateConnectionStatus);
if (_connectionStatus == ConnectivityResult.mobile ||_connectionStatus==ConnectivityResult.wifi)
{
internet is available
}
else{not available}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.