Flutter 检测网络连接
- 2019 年 10 月 4 日
- 筆記
我们使用 connectivity 这个插件来监测网络。
import 'package:flutter/material.dart'; import 'package:connectivity/connectivity.dart'; class ConnectivityPage extends StatefulWidget { ConnectivityPage({Key key}) : super(key: key); _ConnectivityPageState createState() => _ConnectivityPageState(); } class _ConnectivityPageState extends State<ConnectivityPage> { //网络状态描述 String _connectStateDescription; var subscription; @override void initState() { super.initState(); //监测网络变化 subscription = Connectivity() .onConnectivityChanged .listen((ConnectivityResult result) { if (result == ConnectivityResult.mobile) { setState(() { _connectStateDescription = "手机网络"; }); } else if (result == ConnectivityResult.wifi) { setState(() { _connectStateDescription = "Wifi网络"; }); } else { setState(() { _connectStateDescription = "无网络"; }); } print(_connectStateDescription); }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text("监测网络")), body: Center( // 显示网络状态 child: Text("$_connectStateDescription"), ), ); } @override void dispose() { super.dispose(); //在页面销毁的时候一定要取消网络状态的监听 subscription.cancle(); } }
效果如下:
以上。