
前言网络可用性检测是移动应用的基础能力在发起网络请求前先检测网络状态可以避免无效请求并给用户友好提示。pura/harmony-utils的NetworkUtil封装了网络状态检测方法一行代码即可判断网络是否可用。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、NetworkUtil可用性核心APINetworkUtil提供了以下网络可用性检测方法方法说明返回类型使用场景isNetworkAvailable()判断网络是否可用boolean网络请求前检查hasInternet()判断是否有互联网连接boolean互联网可达性isNetworkConnected()判断网络是否连接boolean网络状态查询1.1 核心特性简洁易用封装复杂API为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理内置异常捕获机制避免运行时崩溃快速响应同步返回结果无需异步等待1.2 网络状态判断策略场景推荐方法说明网络请求前isNetworkAvailable()综合判断网络可用性互联网检测hasInternet()判断是否能访问互联网UI状态展示isNetworkConnected()显示网络连接状态二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 检测网络可用性import{NetworkUtil}frompura/harmony-utils;Button(检测网络可用性).width(100%).onClick((){try{letavailableNetworkUtil.isNetworkAvailable();this.result网络可用:${available?是 ✅:否 ❌}\n${available?可以发起网络请求:请检查网络设置};}catch(e){this.result异常: e;}})2.3 网络请求前检查asyncfetchData(){if(!NetworkUtil.isNetworkAvailable()){ToastUtil.show(网络不可用请检查网络设置);return;}letdataawaitthis.api.getData();this.dataListdata;}三、完整页面示例import{NetworkUtil}frompura/harmony-utils;EntryComponentstruct NetworkAvailDemo{Stateresult:string;build(){Column({space:12}){Button(检测网络).width(100%).onClick((){try{letavailableNetworkUtil.isNetworkAvailable();this.result网络状态:${available?可用 ✅:不可用 ❌};}catch(e){this.result异常: e;}});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 网络状态全局拦截器import{NetworkUtil,ToastUtil}frompura/harmony-utils;asyncfunctionsafeRequest(requestFn:Function){if(!NetworkUtil.isNetworkAvailable()){ToastUtil.showToast(网络不可用请稍后重试);returnnull;}returnawaitrequestFn();}4.2 网络状态UI指示器StatenetworkAvailable:booleantrue;aboutToAppear(){this.networkAvailableNetworkUtil.isNetworkAvailable();}五、注意事项权限配置需要在module.json5中配置网络权限实时性返回的是调用时刻的网络状态网络切换网络状态可能随时变化建议使用订阅方式初始化依赖使用前需确保AppUtil.init()已调用多次检测关键操作前建议再次检测六、常见问题Q1: isNetworkAvailable()返回true但无法访问网络可能是连接了WiFi但无法访问互联网建议使用hasInternet()进一步检测。Q2: 如何实时监听网络状态变化使用NetworkUtil.onNetworkChange()订阅网络变化事件。Q3: 飞行模式下返回什么飞行模式下所有网络检测方法都返回false。Q4: 网络权限需要配置哪个需要在module.json5中配置ohos.permission.INTERNET权限。总结NetworkUtil的网络可用性检测方法为应用提供了快速的网络状态判断能力。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。在网络请求前检测网络状态可以避免无效请求并提升用户体验。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。