uni-app uni-WiFi插件无法获取WiFi列表

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

uni-app uni-WiFi插件无法获取WiFi列表

操作步骤:

  • 使用HBuilderX4.29版本,制作自定义基座。使用uni.onGetWifiList注册监听,再使用uni.getWifiList获取列表。

预期结果:

  • uni.onGetWifiList正常返回wifi列表数据

实际结果:

  • uni.onGetWifiList注册的回调函数不触发

bug描述:

  • 使用HBuilderX4.29版本,制作自定义基座。使用uni.onGetWifiList注册监听,再使用uni.getWifiList获取列表。onGetWifiList中注册的回调不触发。
  • 相同的代码,使用4.24版本制作的自定义基座无此问题。
信息类别 信息内容
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本 Windows11
HBuilderX类型 正式
HBuilderX版本 4.29
手机系统 Android
手机系统版本 Android 14
手机厂商 华为
手机机型 HUAWEI MatePad
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

2 回复

你好 请问这个问题修复了吗?


在uni-app中使用uni-WiFi插件时,如果遇到无法获取WiFi列表的问题,通常可能是由于权限设置不正确、插件使用方式有误或设备本身的限制所导致。以下是一个基本的代码示例,展示如何使用uni-WiFi插件来获取WiFi列表,并附带一些可能的问题排查点。

代码示例

首先,确保你已经在manifest.json中正确配置了WiFi相关的权限(注意,不同平台权限配置可能有所不同,这里以Android为例):

"mp-weixin": {},
"app-plus": {
    "distribute": {
        "android": {
            "permissions": [
                "android.permission.ACCESS_FINE_LOCATION",
                "android.permission.CHANGE_WIFI_STATE",
                "android.permission.ACCESS_WIFI_STATE"
            ]
        }
    }
}

然后,在你的uni-app项目中,可以这样使用uni-WiFi插件:

// 引入uni-WiFi插件
const uniWiFi = uni.requireNativePlugin('uni-WiFi');

// 检查并请求位置权限(Android需要)
#ifdef APP-PLUS
if (uni.getSystemInfoSync().platform === 'android') {
    plus.android.requestPermissions(['android.permission.ACCESS_FINE_LOCATION'], function(event) {
        if (event.deniedAlways.length > 0 || event.denied.length > 0) {
            console.error('位置权限被拒绝');
        } else {
            getWiFiList();
        }
    });
} else {
    getWiFiList();
}
#endif

function getWiFiList() {
    uniWiFi.getWiFiList({
        success: function(res) {
            console.log('WiFi列表:', res.SSIDList);
        },
        fail: function(err) {
            console.error('获取WiFi列表失败:', err);
        }
    });
}

问题排查

  1. 权限检查:确保应用已正确申请并获得了所有必要的权限,特别是位置权限(对于Android)。
  2. 设备兼容性:某些设备或系统版本可能不支持通过应用获取WiFi列表,尤其是在iOS上,由于隐私保护政策,通常不允许非系统应用获取WiFi信息。
  3. 插件版本:检查uni-WiFi插件是否为最新版本,老版本可能存在已知的bug或不兼容问题。
  4. 错误处理:在fail回调中打印详细错误信息,有助于定位问题。
  5. 日志输出:使用console.log或更高级的日志工具记录关键步骤的日志,便于调试。

通过上述步骤和代码示例,你应该能够更有效地排查和解决uni-WiFi插件无法获取WiFi列表的问题。如果问题依旧存在,建议查阅官方文档或社区论坛获取更多帮助。

回到顶部