connectivity侦测网路状态
判断当前是Wifi或是一般手机网路
在安卓系统上, 不保证是否一定有连上网路
Note that on Android, this does not guarantee connection to Internet.
程序部分 在main.dart里
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await ConnectivityManager().init();
await UserDefault().init();
// await PushNotificationManager.init();
runApp(MyApp());
}
接着建立ConnectivityManager封装一次
并在onConnectivityChanged里面写handler,
这边也用到了GetX snackbar 作通知.
class ConnectivityManager {
final Connectivity _connectivity = Connectivity();
init() async {
//App launch check once
final reslut = await _connectivity.checkConnectivity();
resultHandler(reslut);
_connectivity.onConnectivityChanged.listen((result) {
//At app using, if network changed
resultHandler(result);
});
}
resultHandler(ConnectivityResult result) {
if (result == ConnectivityResult.none) {
Future.delayed(Duration(seconds: 1)).then((value) {
Get.snackbar(
"当前状态无网路",
"请检查网路连线",
duration: Duration(days: 1),
icon: Icon(Icons.signal_wifi_bad),
);
});
} else {
if (Get.isSnackbarOpen != null) {
if (Get.isSnackbarOpen!) Get.back();
}
}
}
}
效果如下
下一篇将为大家介绍 Socket.io
<<: 【在 iOS 开发路上的大小事-Day29】浅谈 iOS 的 Background Modes
看完这题题目 还记得小时候很常被问到: 给你一些数字,请你从这些数中用最少的数,来涵盖最多的范围。於...
简介 在 Three.js 动画中我们可以透过以下三种方式来制作动画: SkinnedMesh 骨骼...
显示列表 访问案例网站时默认调用index.jsp,在此页面设定转向MainSvl。 http://...
以 PS1 和 PS2 称霸於前两个世代的 SONY、在新的世代推出的主机当然就叫做 PS3。然而身...
我们透过 LeetCode #412 Fizz Buzz 来实际感受解决问题的过程 ( 题目连结 )...