参考:
- https://developers.weixin.qq.com/community/develop/doc/000c06b9e406e84d4cd8e976256800
- https://juejin.cn/post/7132345416879702052
补充:1 月 3 日
并不是不触发,而是 ios wifi 列表的转圈结束后,并不是获取 wifi 成功,还要等一会才获取列表成功。(可以看到转圈结束后,等一会,还会增加几个 Wi-Fi)
使用方式:
1、获取授权
getWifiAuth() {
const that = this;
uni.getSetting({
success: (res) => {
console.log(res);
// 查看是否有定位权限
if (!res.authSetting["scope.userLocation"]) {
uni.authorize({
scope: "scope.userLocation",
success() {
that.getWifiList();
},
// 拒绝授权
fail: () => {
that.showModal = true;
},
});
} else {
that.getWifiList();
}
},
});
},
2、申请获取 Wi-Fi 列表
getWifiList() {
const that = this;
this.showLoading();
uni.startWifi({
success: function () {
// 获取当前连接的Wi-Fi
uni.getConnectedWifi({
success: function (res) {
console.log("已连接Wi-Fi:", res.wifi);
that.connectedWifi = res.wifi;
},
});
// 请求获取Wi-Fi列表
uni.getWifiList({
success: function (res) {
console.log("Wi-Fi列表获取请求已发送");
that.onGetWifiList();
},
});
},
fail: function (err) {
console.error("获取Wi-Fi列表失败:", err);
},
});
},
// 在onShow里面也监听Wi-Fi列表的回调(有时候会在onShow里面触发)
onShow() {
this.onGetWifiList();
}
3、获取到 Wi-Fi 列表的回调
onGetWifiList() {
const that = this;
console.log('执行onGetWifiList');
uni.onGetWifiList(function (res) {
console.log('onGetWifiList+++');
if (res.wifiList.length) {
console.log("已获取到Wi-Fi列表", res.wifiList);
that.wifiList = res.wifiList;
} else {
console.log("当前环境没有Wi-Fi");
}
});
},