• 【Flutter】网络监听


    网络监听:

    插件连接:https://pub.flutter-io.cn/packages/connectivity

    我以当前我使用版本

    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();
      initConnectivity(); //网络监听(开始)
      connectivityInitState(); //网络监听(进行)  /**  * @Wait 版本更新写在这  */ 
    }


    界面结束时记得关闭监听 @override
    //结束 void dispose() {     super.dispose();   connectivityDispose(); //网络监听(结束) }
  • 相关阅读:
    T4模板使用记录,生成Model、Service、Repository
    sortablejs + vue的拖拽效果 列表个数不固定 刷新后保持拖拽后的效果
    vue获取input焦点,弹框后自动获取input焦点
    vue proxy 跨域代理
    vue 同步 $nextTick setTimeout 执行的顺序
    js手写日历插件
    js数组随机排序
    vue自定义插件
    elementui 自定义表头 renderHeader的写法 给增加el-tooltip的提示
    awit的用法,等待执行结果
  • 原文地址:https://www.cnblogs.com/sangwl/p/10873616.html
Copyright © 2020-2023  润新知