Flutter中使用connectivity实现网络检测
1. 安装插件
配置 connectivity 插件。
dependencies:flutter:sdk: flutterflutter_localizations:sdk: flutterdate_format: ^1.0.6flutter_cupertino_date_picker: ^1.0.26+2 flutter_swiper: ^1.1.6fluttertoast: ^7.1.6http: ^0.12.2dio: ^3.0.10flutter_html: ^1.1.0flutter_inappwebview: ^4.0.0+4device_info: ^1.0.0amap_location: ^0.2.0image_picker: ^0.6.7+21video_player: ^1.0.1chewie: ^0.12.2# 网络检测connectivity: ^2.0.2
在pubspec.yaml中配置保存后,在VS Code环境中会自动下载依赖包。
如果无法正常下载,执行 flutter pub get 。
2. 引入依赖
在需要用到的该插件的文件中引入插件包。
import 'package:connectivity/connectivity.dart';
3. 使用插件
// 定义事件
var subscription;
// 网络提示
String _stateText;// 初始化状态
@override
void initState() {super.initState();// 官方代码subscription = Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {// WIFI网络if(result==ConnectivityResult.wifi){setState(() {_stateText="当前为WIFI网络";});// 移动网络}else if(result==ConnectivityResult.mobile){setState(() {_stateText="当前为手机网络";});// 没有网络}else{setState(() {_stateText="当前没有网络";});}});
}// 消毁组件
@override
dispose() {super.dispose();// 消毁组件subscription.cancel();
}
4. 完整实例
import 'package:flutter/material.dart';
import 'package:connectivity/connectivity.dart';class NetworkPage extends StatefulWidget {NetworkPage({Key key}) : super(key: key);@override_NetworkPageState createState() => _NetworkPageState();
}
class _NetworkPageState extends State<NetworkPage> {// 定义事件var subscription;// 网络提示String _stateText;// 初始化状态@overridevoid initState() {super.initState();// 官方代码subscription = Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {// WIFI网络if(result==ConnectivityResult.wifi){setState(() {_stateText="当前为WIFI网络";});// 移动网络}else if(result==ConnectivityResult.mobile){setState(() {_stateText="当前为手机网络";});// 没有网络}else{setState(() {_stateText="当前没有网络";});}});}// 消毁组件@overridedispose() {super.dispose();// 消毁组件subscription.cancel();}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title:Text("检测网络变化")),body:Center(child:Text("${_stateText}")));}
}
参考:
connectivity | Flutter Package
Flutter中使用connectivity实现网络检测相关推荐
- 检测网络是否稳定的计算机命令,电脑中常用的网络检测命令|电脑中检测网络是否存在故障的几条命令...
通常情况下,我们使用电脑的同时要求电脑要连接网络,而网络出现问题导致无法上网也是常见的现象.了解一些电脑中常用的网络检测命令有助于我们排查网络故障.在接下来的内容中,系统城要介绍几条检测电脑网络是 ...
- 官方文档——一篇文章弄懂Flutter中的布局
来自Flutter中文资源主页https://flutter.cn/ 原文:https://flutter.cn/docs/development/ui/layout Flutter 中的布局 要点 ...
- Flutter第一部分(UI)第二篇:在Flutter中构建布局
前言:Flutter系列的文章我应该会持续更新至少一个月左右,从User Interface(UI)到数据相关(文件.数据库.网络)再到Flutter进阶(平台特定代码编写.测试.插件开发等),欢迎感 ...
- Flutter 中文文档:Flutter 中的布局
要点 widgets 是用于构建 UI 的类. widgets 可以用于布局和展示 UI 元素. 通过组合简单的 widgets 来构建复杂的 widgets. Flutter 布局的核心机制是 wi ...
- CVPR2020:点云分析中三维图形卷积网络中可变形核的学习
CVPR2020:点云分析中三维图形卷积网络中可变形核的学习 Convolution in the Cloud: Learning Deformable Kernels in 3D Graph Con ...
- mvp 在 flutter 中的应用
在 Android 应用程序开发过程中,我们经常会用到一些所谓的架构方法,如:mvp,mvvm,clean等.之所以这些方法会被推崇是因为他们可以大大的解耦我们的代码的功能模块,让我们的代码在项目中后 ...
- 华为NIP网络***检测系统
伴随着网络的发展,也产生了各种各样的安全问题,网络中蠕虫.病毒及垃圾邮件肆意泛滥,***无孔不入,DDoS***越来越常见,******行为几乎每时每刻都在发生.如何及时的.准确的发现违反安全策略的事 ...
- 在 Flutter 中使用 NavigationRail 和 BottomNavigationBar
在 Flutter 中使用 NavigationRail 和 BottomNavigationBar 作者:坚果 公众号:"大前端之旅" 华为云享专家,InfoQ签约作者,阿里云专 ...
- 在Flutter中解析复杂的JSON(一篇顶十篇)
文章目录 JSON结构#1:简单 map 访问对象 Snippet #1 : imports **Snippet #2 : **加载Json Asset(可选)** Snippet #3 : 加载响应 ...
- 使用Model-View-ViewModel使用Dart Streams使Flutter中的代码更清晰
by QuickBird Studios 通过QuickBird Studios 使用Model-View-ViewModel使用Dart Streams使Flutter中的代码更清晰 (Use Mo ...
最新文章
- 智源杯天文数据算法挑战赛开赛,前沿AI技术助力天文科学研究
- 设计一个基于svg的涂鸦组件(一)
- Solaris ALOM1.6 SC Password Reset
- mongodb 群集图_群集和重叠条形图
- asp.net网页上嵌入Flash显示
- Android之支付宝设计与开发
- php的完整代码块,简单测试了一下php中的代码块、内部类等知识
- Html5 填表 表单(二) input type 各种输入, 各种用户选择,上传等等泛输入用户交互
- 华为的涉外知识产权工程师_华为法务社招 | 岗位:高级知识产权工程师
- java充血模型orm框架,关于领域驱动设计和贫血、失血、充血模型
- 企业需要安全人,看微软对员工的十个安全原则
- 【java基础 3】树形结构数据呈现的递归算法实现
- FisherYates费雪耶兹随机置乱算法
- vs2015安装qt5教程
- Deep Gait Recognition: A Survey 阅读笔记
- LQ0069 李白打酒加强版【DP】
- Android 6.0新特性[zz]
- SQLServer数据库安全规划全攻略(转)
- led灯亮度渐变实现
- PROFINET基础知识介绍