全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

MAUI怎么监听网络状态变化 MAUI Connectivity教程

MAUI 监听网络状态变化核心依赖 Microsoft.Maui.Essentials.Connectivity,它跨平台、免权限、无需原生代码;通过 NetworkAccess 判断互联网可达性(Internet/Local/None),用 ConnectivityChanged 事件实时响应变化,并支持 ConnectionProfiles 区分 WiFi/蜂窝等类型。

MAUI 监听网络状态变化,核心靠 Microsoft.Maui.Essentials.Connectivity,它跨平台、开箱即用,不需要额外权限(iOS/Android 侧系统已默认支持),也不用写原生桥接代码。

获取当前网络访问状态

Connectivity 提供的是“是否能访问互联网”的语义判断,不是单纯看有没有连上 WiFi 或蜂窝网。关键看 NetworkAccess 枚举:

  • NetworkAccess.Internet:设备可访问公网(如能打开 google.com)
  • NetworkAccess.Local:仅局域网通(比如连了 WiFi 但没网关/没外网)
  • NetworkAccess.None:完全无网络连接

用法很简单:

var access = Connectivity.Current.NetworkAccess;
if (access == NetworkAccess.Internet)
    Console.WriteLine("在线,可发起 API 请求");
else if (access == NetworkAccess.Local)
    Console.WriteLine("在内网,可能无法访问云服务");
else
    Console.WriteLine("离线中");

实时监听网络变化事件

别轮询,用 Connectivity.ConnectivityChanged 事件——只要网络状态一变(比如断网、切 WiFi、开启飞行模式),就会触发:

// 建议在页面或服务生命周期开始时注册
Connectivity.ConnectivityChanged += OnConnectivityChanged;

void OnConnectivityChanged(object sender, ConnectivityChangedEventArgs e)
{
    var newAccess = e.NetworkAccess;
    var profile = e.ConnectionProfiles; // 如 [Wifi], [Cellular]

    if (newAccess == NetworkAccess.Internet)
        ShowOnlineToast();
    else
        ShowOfflineHint();
}

⚠️ 注意:该事件是全局的,记得在页面销毁或服务停用时反注册,避免内存泄漏:

Connectivity.ConnectivityChanged -= OnConnectivityChanged;

区分网络类型(WiFi / 蜂窝 / 以太网)

如果业务需要按网络类型做策略(例如只在 WiFi 下自动更新),用 ConnectionProfiles

  • ConnectionProfile.WiFi
  • ConnectionProfile.Cellular
  • ConnectionProfile.Ethernet
  • ConnectionProfile.Unknown

示例判断是否在 WiFi:

bool isOnWifi = Connectivity.Current.ConnectionProfiles.Contains(ConnectionProfile.WiFi);

注意:多个 profile 可能同时存在(如 WiFi + 蓝牙 PAN),所以要用 Contains 而非直接比对。

离线场景下的实用建议

真实用户场景中,光知道“离线”还不够,还得处理得自然:

  • 界面层加个轻量提示条(非弹窗),2 秒后自动收起
  • API 请求失败时,先检查 Connectivity.Current.NetworkAccess,再决定重试 or 缓存队列
  • 本地数据库操作照常执行,等联网后再同步(配合 依赖注入 封装同步逻辑)
  • iOS 模拟器偶尔返回不准确状态,真机测试更可靠

基本上就这些。Connectivity API 设计简洁,重点是把 NetworkAccessConnectionProfiles 的语义理解清楚,别把它当成“是否有信号”来用。


# android  # go  # 云服务  # internet  # 以太网  # access  # wifi  # ai  # ios  # microsoft  # 封装  # 事件  # 数据库  # 离线  # 互联网  # 的是  # 就会  # 多个  # 不需要  # 网通  # 把它  # 很简单  # 要用 


相关文章: 一键网站制作软件,义乌购一件代发流程?  存储型VPS适合搭建中小型网站吗?  智能起名网站制作软件有哪些,制作logo的软件?  如何在云指建站中生成FTP站点?  Java解压缩zip - 解压缩多个文件或文件夹实例  代刷网站制作软件,别人代刷火车票靠谱吗?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  如何通过FTP服务器快速搭建网站?  深圳网站制作案例,网页的相关名词有哪些?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  5种Android数据存储方式汇总  营销式网站制作方案,销售哪个网站招聘效果最好?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  建站主机服务器选型指南与性能优化方案解析  如何在阿里云虚拟主机上快速搭建个人网站?  如何快速生成专业多端适配建站电话?  建站之星在线客服如何快速接入解答?  网站代码制作软件有哪些,如何生成自己网站的代码?  济南专业网站制作公司,济南信息工程学校怎么样?  如何解决VPS建站LNMP环境配置常见问题?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  湖北网站制作公司有哪些,湖北清能集团官网?  如何设置并定期更换建站之星安全管理员密码?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  如何在阿里云部署织梦网站?  如何在云服务器上快速搭建个人网站?  建站主机类型有哪些?如何正确选型  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  完全自定义免费建站平台:主题模板在线生成一站式服务  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何用花生壳三步快速搭建专属网站?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  个人摄影网站制作流程,摄影爱好者都去什么网站?  建站10G流量真的够用吗?如何应对访问高峰?  高防服务器如何保障网站安全无虞?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  如何通过虚拟主机空间快速建站?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  济南网站建设制作公司,室内设计网站一般都有哪些功能?  建站上市公司网站建设方案与SEO优化服务定制指南  怎么将XML数据可视化 D3.js加载XML  如何有效防御Web建站篡改攻击?  如何在服务器上三步完成建站并提升流量?  香港服务器WordPress建站指南:SEO优化与高效部署策略  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。