uni-app在App端如何监听网络状态变化? 凌薇🍀 提问于 2026-03-11 16:11:19 阅读 36 移动 我在uni-app里开发App,想实时监听网络是否断开或者恢复,但onNetworkStatusChange在真机上好像没反应。 查了文档说要用uni.onNetworkStatusChange,但写了回调函数后,在iOS和Android上测试都没触发,是我用法不对吗? 目前代码是这样写的: uni.onNetworkStatusChange(function(res) { console.log('网络状态变化', res.isConnected); }); App端uni-app 我来解答 赞 5 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 炳光 Lv1 你的代码写法没问题,问题出在两个地方: 1. 需要先调用 uni.getNetworkType() 初始化 App端得先触发一次网络状态获取,才能监听到后续变化。改一下: // 先获取一次网络状态 uni.getNetworkType({ success: function() { // 这里的success回调不代表有网,只是触发初始化 } }); // 然后再监听 uni.onNetworkStatusChange(function(res) { console.log('网络状态变化', res.isConnected); }); 2. 检查manifest.json权限 打开manifest.json → App常用其它设置 → 勾选“访问网络”,没这个权限的话整个网络功能都是废的。 还有一个小细节:onNetworkStatusChange 的回调只在网络状态真正发生变化时才触发。如果你测试时网络一直是连着的,当然不会打印。你断网或者恢复网络的时候应该能看到输出。 另外,这个监听在App切到后台时可能会失效,这是正常现象。如果你的需求是App在后台也要监听到,可以考虑用native插件或者uni-app的推送能力配合实现。 还有问题的话再贴代码上来看看。 回复 点赞 1 2026-03-11 16:13 加载更多 相关推荐 2 回答 55 浏览 uni-app 中如何正确使用自定义导航栏并适配状态栏高度? 我在 uni-app 里想用自定义导航栏,但发现不同手机的状态栏高度不一样,顶部经常被遮挡。我试过用 uni.getSystemInfoSync() 获取状态栏高度,但放到页面里还是不对。 这是我的结... ლ若曦 框架 2026-03-20 20:35:18 1 回答 59 浏览 uni-app小程序端如何监听页面返回事件? 我在uni-app里开发微信小程序,想在页面被返回(比如点击左上角返回按钮)时做一些清理操作,但不知道怎么监听这个事件。 试过 onUnload 生命周期,但它在页面关闭时才触发,而我想在用户点击返回... Dev · 硕泽 移动 2026-03-13 22:27:21 1 回答 73 浏览 uni-app中React组件如何正确监听页面滚动事件? 在用uni-app开发时遇到了滚动监听问题。我在页面里写了一个React组件,想通过uni的onPageScroll方法获取滚动位置,但滚动时数值没有变化,甚至出现重复回调。 尝试过这样写代码: co... 极客子诺 移动 2026-02-18 08:58:42 1 回答 32 浏览 uni-app中如何监听页面返回事件? 我在uni-app里做了一个表单页面,用户填写到一半点返回键,我想弹个确认框防止误操作。但试了onUnload和onHide都不行,安卓物理返回键根本没触发这些生命周期。 查文档说可以用onBackP... 鑫鑫(打工版) 移动 2026-03-25 19:07:20 1 回答 40 浏览 uni-app中如何监听页面滚动到底部? 我在uni-app里做了一个上拉加载更多的功能,但用@scrolltolower有时候不触发,尤其是在H5端。试过给scroll-view加了:scroll-y="true"和固定高度,还是不行,到底... Mc.富水 移动 2026-03-10 09:08:20 1 回答 62 浏览 uni-app中如何让页面背景色铺满整个屏幕? 我在uni-app里写了个登录页,想把背景色设成浅蓝色,但发现只覆盖了内容区域,底部有一截白边,特别是在iPhone X这类有安全区的机型上特别明显。我试过给page和view都加背景色,也用了hei... Designer°佳润 框架 2026-03-21 09:47:16 2 回答 74 浏览 uni-app 中如何正确适配不同平台的导航栏高度? 我在用 uni-app 开发一个多端应用,发现 H5、微信小程序和 App 端的导航栏高度不一致,导致页面内容被遮挡或者留白太多。我试过用 uni.getSystemInfoSync() 获取状态栏高... 春萍 Dev 移动 2026-03-12 15:24:25 2 回答 34 浏览 uni-app 中如何正确适配不同平台的导航栏高度? 我在用 uni-app 开发一个多端项目,发现 iOS、Android 和 H5 的导航栏高度都不一样。尝试用 uni.getSystemInfoSync() 获取状态栏高度,但组合起来还是对不齐。比... 慕容紫瑶 移动 2026-03-06 06:17:19 2 回答 67 浏览 uni-app中如何让scroll-view在H5和App端滚动效果一致? 我在用uni-app开发一个跨端应用,发现scroll-view在H5上滑动很流畅,但在App端(尤其是iOS)滚动特别卡顿,而且惯性滚动也没了。试过加:scroll-with-animation="... 松浩的笔记 移动 2026-02-25 04:34:22 2 回答 71 浏览 uni-app中React组件如何正确触发页面跳转? 在uni-app里用React写组件时,想通过按钮跳转页面,但直接用uni.navigateTo一直报错。我按照文档写了个函数: const navigate = () => { uni.nav... UI婧妍 移动 2026-02-16 11:36:22
1. 需要先调用 uni.getNetworkType() 初始化
App端得先触发一次网络状态获取,才能监听到后续变化。改一下:
2. 检查manifest.json权限
打开manifest.json → App常用其它设置 → 勾选“访问网络”,没这个权限的话整个网络功能都是废的。
还有一个小细节:onNetworkStatusChange 的回调只在网络状态真正发生变化时才触发。如果你测试时网络一直是连着的,当然不会打印。你断网或者恢复网络的时候应该能看到输出。
另外,这个监听在App切到后台时可能会失效,这是正常现象。如果你的需求是App在后台也要监听到,可以考虑用native插件或者uni-app的推送能力配合实现。
还有问题的话再贴代码上来看看。