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();    }  }

效果如下:

以上。