一、功能实现前置条件
1. 权限配置
在app.json
中添加地理位置权限声明
"permission": { "scope.userLocation": { "desc": "需要获取位置信息以搜索附近WiFi" } }
2. 设备兼容性检查
wx.getSystemInfo({ success(res) { const system = res.system.split(' ')[0]; if (system === 'iOS' && parseFloat(res.system) < 11.2) { wx.showToast({ title: 'iOS系统版本过低' }); } } });
初始化WiFi模块
wx.startWifi({ success() { console.log('WiFi模块初始化成功'); this.getWifiList(); }, fail(err) { console.error('初始化失败:', err.errMsg); // 错误码12000[6](@ref) } });
2. 请求WiFi列表
wx.getWifiList({ success() { console.log('已触发扫描'); }, fail(err) { if (err.errCode === 12007) { wx.showModal({ title: '用户拒绝授权' }); // 权限被拒处理[8](@ref) } } }); // 监听列表返回 wx.onGetWifiList(res => { const wifiList = res.wifiList.filter(item => item.SSID); this.setData({ wifiList }); });
连接指定WiFi
wx.connectWifi({ SSID: 'Your_WiFi_SSID', BSSID: '设备MAC地址(可选)', password: 'Your_Password', success() { wx.onWifiConnected(res => { console.log('已连接:', res.wifi.SSID); // 监听连接成功事件[8](@ref) }); }, fail(err) { if (err.errCode === 12002) { wx.showToast({ title: '密码错误' }); // 常见错误处理[6](@ref) } } });
平台差异处理
Android:可直接在应用内完成连接
iOS:需跳转系统设置页手动连接(iOS 11.2+)
wx.connectWifi({ ..., maunal: true // 强制跳转系统页[2](@ref) });
上一篇:微信小程序隐私授权实践