uni-app uni.onNetworkStatusChange无反应

uni-app uni.onNetworkStatusChange无反应

操作步骤:

  • 启动app,观察日志

预期结果:

  • 有日志输出

实际结果:

  • 无日志输出

bug描述:

  • app.vue onshow 编写以下代码,没有对应日志输出
    uni.onNetworkStatusChange(function (res) {
        console.log("onNetworkStatusChange", res);
    });
    
项目信息 详情
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境版本 window10
HBuilderX类型 正式
HBuilderX版本 4.85
手机系统 Android
手机系统版本 Android 9.0
手机厂商 电视
手机机型 电视TV
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app uni.onNetworkStatusChange无反应的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

{ “SDKVersion”: “”, “appId”: “UNIC3C60C3”, “appLanguage”: “zh-Hans”, “appName”: “yykj-ua-tv-pro-1117”, “appVersion”: “14.85”, “appVersionCode”: 1485, “appWgtVersion”: “1.0.1”, “brand”: “amlogic”, “browserName”: “chrome”, “browserVersion”: “66.0.3359.158”, “deviceBrand”: “amlogic”, “deviceId”: “4EC326083DB811C490CAC4A0DE37FDD6”, “deviceModel”: “TX6”, “deviceOrientation”: “landscape”, “devicePixelRatio”: 1.5, “deviceType”: “pad”, “isUniAppX”: false, “language”: “zh-CN”, “model”: “TX6”, “oaid”: “”, “osAndroidAPILevel”: 28, “osLanguage”: “zh-CN”, “osName”: “android”, “osTheme”: “light”, “osVersion”: “9”, “pixelRatio”: 1.5, “platform”: “android”, “romName”: “Android”, “romVersion”: “9”, “safeArea”: { “left”: 0, “right”: 1280, “top”: 24, “bottom”: 720, “width”: 1280, “height”: 696 }, “safeAreaInsets”: { “top”: 24, “right”: 0, “bottom”: 0, “left”: 0 }, “screenHeight”: 720, “screenWidth”: 1280, “statusBarHeight”: 24, “system”: “Android 9”, “ua”: “Mozilla/5.0 (Linux; Android 9; TX6 Build/PPR1.181005.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.158 Safari/537.36 uni-app Html5Plus/1.0 (Immersed/24.0)”, “uniCompileVersion”: “4.85”, “uniCompilerVersion”: “4.85”, “uniPlatform”: “app”, “uniRuntimeVersion”: “4.85”, “version”: “1.9.9.82519”, “windowBottom”: 0, “windowHeight”: 720, “windowTop”: 0, “windowWidth”: 1280, “errMsg”: “getSystemInfo:ok” }

更多关于uni-app uni.onNetworkStatusChange无反应的实战教程也可以访问 https://www.itying.com/category-93-b0.html


uni.onNetworkStatusChange 在部分设备或环境下可能无法正常触发,这通常与设备权限、运行时机或特定平台限制有关。针对你的情况,可以按以下步骤排查:

  1. 检查网络权限
    确保 manifest.json 中已配置网络权限(App 模块需勾选“网络通讯”权限)。云端打包后,在设备设置中确认应用已获取网络访问权限。

  2. 调用时机问题
    onNetworkStatusChange 建议在应用启动早期调用(如 App.vueonLaunch 中),部分设备在 onShow 中注册可能延迟。尝试调整到 onLaunch 中初始化:

    onLaunch() {
      uni.onNetworkStatusChange(res => {
        console.log('网络状态变化:', res);
      });
    }
    
  3. 主动获取一次状态
    注册监听后,可立即调用 uni.getNetworkType() 触发一次状态检测,并验证基础 API 是否正常:

    uni.getNetworkType({
      success: (res) => console.log('当前网络类型:', res.networkType)
    });
回到顶部