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 设计简洁,重点是把 NetworkAccess 和 ConnectionProfiles 的语义理解清楚,别把它当成“是否有信号”来用。
以上就是MAUI怎么监听网络状态变化 MAUI Connectivity教程的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1443190.html
微信扫一扫
支付宝扫一扫