uniapp 如何获取当前wifi信息
在uniapp开发中,如何获取当前设备连接的wifi名称和信号强度等信息?官方文档似乎没有明确的API说明,尝试过plus.networkinfo但获取不到具体wifi数据。请问有实际可行的解决方案吗?需要兼容Android和iOS平台。
2 回复
在 UniApp 中,获取当前 Wi-Fi 信息需要使用 uni.getConnectedWifi() 方法。这个方法依赖于微信小程序的部分 API 支持,因此主要适用于微信小程序平台,其他平台(如 H5、App)可能不支持或需要额外配置。
实现步骤:
- 检查平台兼容性:确保在微信小程序环境中运行。
- 调用 API:使用
uni.getConnectedWifi()获取已连接的 Wi-Fi 信息。 - 处理返回数据:成功时获取 SSID、BSSID 等详细信息;失败时处理错误。
示例代码:
// 在页面方法或事件中调用
getWifiInfo() {
// 检查是否在微信小程序环境
if (uni.getSystemInfoSync().platform === 'devtools' || uni.getSystemInfoSync().platform === 'ios' || uni.getSystemInfoSync().platform === 'android') {
uni.showToast({
title: '此功能仅支持微信小程序',
icon: 'none'
});
return;
}
// 调用获取 Wi-Fi 信息的方法
uni.getConnectedWifi({
success: (res) => {
console.log('Wi-Fi 信息:', res.wifi);
// 返回的 res.wifi 包含以下字段:
// - SSID: Wi-Fi 名称
// - BSSID: 路由器 MAC 地址
// - secure: 是否安全
// - signalStrength: 信号强度
uni.showModal({
title: '当前 Wi-Fi',
content: `名称: ${res.wifi.SSID}\nMAC: ${res.wifi.BSSID}`,
showCancel: false
});
},
fail: (err) => {
console.error('获取失败:', err);
uni.showToast({
title: '获取 Wi-Fi 信息失败',
icon: 'none'
});
}
});
}
注意事项:
- 平台限制:此 API 目前主要支持微信小程序,在 H5 或 App 中可能无法使用或返回空数据。
- 用户权限:在微信小程序中,首次调用时会请求用户授权,如果用户拒绝,需引导用户手动开启权限。
- 安全限制:部分 Wi-Fi 信息(如 BSSID)可能受隐私政策限制,需合理使用。
扩展建议:
- 如果需要更广泛的平台支持(如 App),可考虑使用原生插件或条件编译针对不同平台处理。
- 始终在
fail回调中处理错误,以提升用户体验。
通过以上方法,你可以在 UniApp 中获取当前连接的 Wi-Fi 基本信息。如有问题,请参考 UniApp 官方文档 获取更新信息。


