在小程序中支持搜索周边的 wi-fi 设备,同时可以针对指定设备,传入密码发起连接。
如果知道 wi-fi 设备名称和密码,并确认设备在附近,可以直接在小程序中连接指定 wi-fi。
调用时序
- my.startwifi:初始化 wi-fi 模块。
- my.connectwifi:连接 wi-fi(ios 需 11 及以上版本支持)。
- my.onwificonnected:监听连接上 wi-fi 事件。
示例代码
// 1. 先初始化 wi-fi 模块
my.startwifi({
success: function(res) {
console.log(res);
// 2. 连接 wi-fi
my.connectwifi({
ssid: '',
password: '',
success: function(res) {
console.log(res);
}
});
}
});
// 3. 监听连接上 wi-fi
my.onwificonnected(function(res) {
console.log(res);
})
小程序可以通过扫描附近的 wi-fi 设备,让用户选择某个设备进行连接。
注意:
- 此方式仅安卓生效。ios 需引导用户到系统「无线局域网」页手动连接。
- android 6.0 以上版本,未打开系统定位开关会导致设备不能正常获取周边的 wi-fi 信息。
android 调用时序
- my.startwifi:初始化 wi-fi 模块。
- my.getwifilist:请求获取 wi-fi 列表。
- my.ongetwifilist:获取到 wi-fi 列表数据事件。
- my.connectwifi:连接 wi-fi。
- my.onwificonnected:监听连接上 wi-fi 事件。
android 示例代码
// 1.初始化 wi-fi 模块。
my.startwifi({
success() {
// 2.请求获取 wi-fi 列表。
my.getwifilist();
}
})
// 3.获取到 wi-fi 列表数据。
my.ongetwifilist(res => {
if (res.wifilist && res.wifilist[0]) {
const wifiinfo = res.wifilist[0];
// 4.for android 连接 wi-fi。
my.connectwifi({
ssid: wifiinfo.ssid,
bssid: wifiinfo.bssid,
complete(res) {
console.log(res);
}
});
}
});
// 5.监听连接上 wi-fi 事件
my.onwificonnected(res => {
my.alert({
content: 'onwificonnected:' json.stringify(res),
})
});
wifi 信息。getconnectedwifi 、onwificonnected 等接口会返回的 wi-fi 数据模型。
属性 | 类型 | 简介 |
---|---|---|
ssid | string | wi-fi 的 ssid。 |
bssid | string | wi-fi 的 bssid。 |
secure | boolean | wi-fi 是否安全。 |
signalstrength | number | wi-fi 信号强度。取值 0 ~ 100,值越大强度越大。 |
错误码 | 错误说明 |
---|---|
12000 | 未先调用 my.startwifi 接口。 |
12001 | 当前系统不支持相关能力。 |
12002 | wi-fi 密码错误。 |
12003 | 连接超时。请检查网络环境 |
12004 | 重复连接 wi-fi。 |
12005 | android 特有,未打开 wi-fi 开关。 |
12006 | android 特有,未打开 gps 定位开关。请前往系统支付宝设置页授权定位权限 |
12007 | 用户拒绝授权链接 wi-fi。 |
12008 | 无效 ssid。 |
12009 | 系统运营商配置拒绝连接 wi-fi。 |
120010 | 系统其他错误,需要在 errormessage 打印具体的错误原因。 如果是安卓设备出现该错误码,当错误信息 "errormessage":"invalid network id" 时可以尝试: 1.可以试一下先忘记当前网络在去链接 2.检查一下手机热点的频率是否支持 |
120011 | 应用在后台无法配置 wi-fi。 |
120012 | wi-fi 功能暂时不能使用。 |
120013 | 没有已连接的 wi-fi。 |