【Flutter】网络监听
网络监听:
插件连接:https://pub.flutter-io.cn/packages/connectivity
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
我以当前我使用版本
connectivity: ^0.4.2 #网络监测
在一个公用的界面
import 'dart:async';//(检测网络)
import 'package:flutter/services.dart';//(检测网络)
import 'package:connectivity/connectivity.dart';//(检测网络)
/** * @Effect 检测网络 */ //定义变量(网络状态) String _connectionStatus = 'Unknown';
StreamSubscription<ConnectivityResult> _connectivitySubscription; //网络初始状态 connectivityInitState(){ _connectivitySubscription =
Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {
print(result.toString()); if(result.toString() == 'ConnectivityResult.none'){
Fluttertoast.showToast(
msg: '网络连接错误!',
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
timeInSecForIos: 2,
fontSize: 16.0 );
}
});
} //网络结束监听 connectivityDispose(){ _connectivitySubscription.cancel();
} //网络进行监听 Future<Null> initConnectivity() async {
String connectionStatus; //平台消息可能会失败,因此我们使用Try/Catch PlatformException。 try {
connectionStatus = (await Connectivity().checkConnectivity()).toString();
if (connectionStatus == ConnectivityResult.mobile) { // I am connected to a mobile network. }
else if (connectionStatus == ConnectivityResult.wifi) { // I am connected to a wifi network. }
} on PlatformException catch (e) {
print(e.toString());
connectionStatus = 'Failed to get connectivity.';
}
}
当有界面使用的时候
@override //初始化 void initState() {
super.initState(); publicAll().initConnectivity(); //网络监听(开始)
publicAll().connectivityInitState(); //网络监听(进行) /** * @Wait 版本更新写在这 */
}
界面结束时记得关闭监听
@override //结束
void dispose() {
super.dispose(); publicAll().connectivityDispose(); //网络监听(结束)
}
更多精彩

