uni-app怎么获取WiFi列表 uni-app手机连接WiFi信息查询【教程】
getWifiList返回空因未走完完整流程需先startWifi初始化再注册onGetWifiList监听回调且真机必须开启定位权限并配置requiredPrivateInfos白名单。uni-app里getWifiList为什么总返回空因为没走完完整流程微信小程序的WiFi API是事件驱动的getWifiList本身不返回数据只触发系统扫描真实列表必须靠onGetWifiList监听回调才能拿到。很多人写了getWifiList就以为完事了结果console.log出来是undefined或空数组。必须先调用startWifi初始化模块否则后续全部失败 getWifiList成功后要提前注册onGetWifiList否则回调收不到 真机调试时若未开启定位服务或拒绝scope.userLocation授权列表一定为空Android/iOS均如此 微信开发者工具模拟器不支持WiFi扫描必须真机测试 示例片段不可省略任一环节uni.startWifi({ success: () { uni.onGetWifiList(res { console.log(扫到这些WiFi:, res.wifiList) }) uni.getWifiList({ fail: err console.error(扫描触发失败, err) }) }, fail: err console.error(WiFi模块启动失败, err) })Android真机上getWifiList返回空但权限都配了大概率是缺了运行时定位权限。从Android 6.0起ACCESS_FINE_LOCATION属于危险权限光在manifest.json里声明不够还必须在代码里动态申请。manifest.json中app-plus → distribute → android → permissions需包含android.permission.ACCESS_FINE_LOCATION、android.permission.ACCESS_WIFI_STATE 必须在调用startWifi前执行uni.authorize({ scope: scope.userLocation }) 若用户之前点过“拒绝”authorize会直接失败得引导跳转系统设置页uni.openSystemSetting() Android 10强制要求定位权限哪怕你只扫列表、不连接也绕不开 微信小程序配置requiredPrivateInfos报错或不生效这是微信平台的硬性白名单机制不是可选项。如果你没在mp-weixin节点下显式声明API调用会被静默拦截控制台可能连错误都不抛。必须在manifest.json的mp-weixin对象里加requiredPrivateInfos: [getWifiList, startWifi] 同时补全permission字段scope.userLocation: { desc: 用于获取附近WiFi列表 } 注意这个desc文案会在首次授权弹窗中显示不能为空或纯空格否则审核可能被拒 修改后必须重新上传小程序代码本地调试不会校验该字段 App端iOS/Android能用uni.getWifiList吗不能。UniApp的getWifiList等API仅在微信/支付宝等小程序平台可用App端app-plus完全不支持——官方文档明确标注为“小程序专属”。想在App里实现唯一可行路径是写原生插件Android用WifiManageriOS用CNCopyCurrentNetworkInfoiOS 12或NEHotspotNetworkiOS 14 插件需处理权限桥接、异步回调封装、密码加密传输等细节开发成本远高于小程序 第三方插件如Fvv-UniWifiHelper可降低门槛但仍需手动配置权限和链接原生模块 最常被忽略的一点WiFi扫描不是纯前端能力它卡在系统层、权限层、平台策略层三层交界处。写对三行API只是开始真正耗时的是把每层的“必须动作”都补全——尤其是Android的动态定位授权和微信的requiredPrivateInfos白名单。 There’s An AI For That 全球领先的 AI 聚合器收集10,225个AI工具可用于超过2,548个任务。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2539164.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!