uni-app 获取WiFi信息uni.startWifi接口报错

发布于 1周前 作者 wuwangju 来自 Uni-App

uni-app 获取WiFi信息uni.startWifi接口报错

信息类别 详细信息
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 23H2
HBuilderX类型 正式
HBuilderX版本号 4.29
手机系统 Android
手机系统版本号 Android 14
手机厂商 OPPO
手机机型 一加ACE2
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

uni.startWifi ({
success: (suc) => {
console.log(suc)
},
fail:(fail)=>{
console.log(fail)
}
})

操作步骤:

uni.startWifi ({
success: (suc) => {
console.log(suc)
},
fail:(fail)=>{
console.log(fail)
}
})

预期结果:

正常进行

实际结果:

Error: targetMethod error::java.lang.NoSuchMethodError: No static method requestSystemPermission$default(Lio/dcloud/uts/UTSAndroid;Landroid/app/Activity;Lio/dcloud/uts/UTSArray;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;ZILjava/lang/Object;)V in class Lio/dcloud/uts/UTSAndroid; or its super classes (declaration of 'io.dcloud.uts.UTSAndroid' appears in /data/app/~~ATSCKo5tCrIbtWCBTv_UhQ==/yq.zigpet.com-BV5c2oJkVn5S-L-lEs-lBQ==/base.apk!classes2.dex)

bug描述:

调用uni.startWifi方法报错


1 回复

在处理 uni-app 中获取 WiFi 信息时,如果遇到 uni.startWifi 接口报错的问题,首先需要确保你使用的 uni-app 版本支持该 API,并且你的应用有相应的权限来获取 WiFi 信息。以下是一些可能的解决方案和代码示例,帮助你定位和解决问题。

1. 检查权限和 API 支持

确保你的 manifest.json 文件中已经声明了必要的权限。对于获取 WiFi 信息,通常需要网络权限:

"mp-weixin": { // 以微信小程序为例
    "requiredPrivateInfos": ["getWifiList"]
}

注意:不同平台(如 H5、App、小程序)的权限声明方式可能有所不同,请参考对应平台的文档。

2. 使用正确的 API 调用方式

uni.startWifi API 在较新版本的 uni-app 中可能已经被 uni.getWifiList 替代。以下是一个使用 uni.getWifiList 的示例代码:

// 检查 API 支持
if (typeof uni.getWifiList === 'function') {
    uni.getWifiList({
        success: function (res) {
            console.log('WiFi列表:', res.wifiList);
        },
        fail: function (err) {
            console.error('获取WiFi列表失败:', err);
        }
    });
} else {
    console.warn('当前平台不支持uni.getWifiList API');
}

3. 错误处理

对于 uni.startWifiuni.getWifiList 的调用,确保添加适当的错误处理逻辑,以便在 API 调用失败时能够获取到详细的错误信息:

uni.startWifi({ // 注意:此API可能在某些版本中已被废弃
    success: function () {
        uni.getWifiList({
            success: function (res) {
                console.log('WiFi列表:', res.wifiList);
            },
            fail: function (err) {
                console.error('获取WiFi列表失败:', err);
                // 根据错误信息执行相应操作,如提示用户授权等
            }
        });
    },
    fail: function (err) {
        console.error('启动WiFi扫描失败:', err);
        // 处理启动扫描失败的情况,可能是权限问题
    }
});

4. 注意事项

  • 平台差异:不同平台(iOS、Android、小程序等)对获取 WiFi 信息的支持程度不同,务必参考对应平台的官方文档。
  • 权限管理:确保用户已授予应用必要的权限,特别是在小程序和移动应用中。
  • 版本更新:定期检查 uni-app 的更新日志,了解 API 的最新状态和变更。

通过上述步骤和代码示例,你应该能够更有效地定位和解决 uni.startWifi 接口报错的问题。

回到顶部