flutter 检测网络

 

Flutter 检测网络插件来源

// 使用connectivity插件来检测Flutter应用的网络状态
// 来源链接为connectivity插件在pub.dev的官方页面
https://pub.dev/packages/connectivity

导入所需的包

// 引入Flutter的核心库和connectivity库
import 'package:flutter/material.dart';
import 'package:connectivity/connectivity.dart';

定义CameraPage组件

// 定义CameraPage组件,它是一个StatefulWidget
class CameraPage extends StatefulWidget {
  CameraPage({Key key});
  _CameraPage createState() => _CameraPage();
}

组件状态的 代码实现

class _CameraPage extends State {
  // 定义subscription存储网络状态
  var subscription;
  // 默认显示“未检测网络”
  var whatNetwork = '未检测网络';

  // 初始化状态时获取网络
  @override
  initState() {
    super.initState();
    getNetwork();
  }

  // 销毁时取消网络订阅
  @override
  dispose() {
    super.dispose();
    // 取消网络状态的订阅
    subscription.cancel();
  }

  @override
  Widget build(BuildContext context) {
    // 创建UI结构
    return Scaffold(
        appBar: AppBar(
            title: Text('设备硬件')
        ),
        body: ListView(
          children: <Widget>[
            Text('${whatNetwork}'),
          ]
        )
    );
  }

  // 用于检测网络状态的函数
  getNetwork() async {
    subscription = await (Connectivity().checkConnectivity());
    // 根据不同的网络状态进行操作
    switch(subscription) {
      case ConnectivityResult.mobile:
        setState(() {whatNetwork = '手机网络';});
        break;
      case ConnectivityResult.wifi:
        setState(() {whatNetwork = '网络WIFI';});
        break;
      default:
        setState(() {whatNetwork = '无网络';});
    }
  }
}

posted on 2020-02-27 18:24  完美前端  阅读(367)  评论(0)    收藏  举报

导航