添加部分页面

This commit is contained in:
qianlile
2021-08-21 20:11:09 +08:00
parent fe4902da1c
commit dbaee1db02
903 changed files with 1198 additions and 35963 deletions

View File

@@ -0,0 +1,265 @@
const alreadyConnected = 'target wifi is already connected.';
Page({
data: {
pwdHide:true,
ssid: '',
password: '',
deviceSSID:'Shgf',
devicePWD:'12345678',
// deviceSSID:'XiaoYi_IOT_AirBox',
// devicePWD:'asdqwe9867',
udp: '',
port: 0,
showClearBtn: false,
isFirst: true,
stepsTop: [
{ text: '步骤一',desc: '连接WiFi', },
{ text: '步骤二',desc: '连接软热点', },
{ text: '步骤三',desc: '开始配网', }
],
steps: [
{ text: '手机与设备通信成功',success:false },
{ text: '设备配网成功',success:false },
{ text: '切换回家庭WiFi',success:false }
],
activeTop:0,
active:-1
},
onLoad(opt) {
let that = this;
wx.startWifi({
success(res) {
console.log(res.errMsg, 'wifi初始化成功')
that.getWifiInfo();
},
fail: function (res) {
wx.showToast({
title: '请连接路由器!',
duration: 2000,
icon: 'none'
})
}
})
},
getWifiInfo() {
let that = this
wx.getConnectedWifi({
success(res) {
console.log("getConnectedWifi ok:", JSON.stringify(res))
if ('getConnectedWifi:ok' === res.errMsg) {
that.setData({
ssid: res.wifi.SSID,
bssid: res.wifi.BSSID
})
} else {
wx.showToast({
title: '请连接路由器',
duration: 2000,
icon: 'none'
})
}
},
fail(res) {
wx.showToast({
title: '请连接路由器',
duration: 2000,
icon: 'none'
})
}
})
},
onConfirm() {
const that = this;
console.log("ssid:", this.data.ssid, ",password:", this.data.password,',port:',this.data.port);
// that.udpConnect();
if ((this.data.ssid.trim() === '') || (this.data.password.trim() === '')) {
wx.showToast({
title: '请输入完整',
icon:'error'
});
return;
}
that.setData({ activeTop:++that.data.activeTop });
// that.udpConnect();
},
udpConnect(){
const udp = wx.createUDPSocket();
udp.onListening(res => {
console.log('正在监听...');
})
const password = this.data.password;
const ssid = this.data.ssid;
let message = JSON.stringify({
port,
password,
ssid
});
let port = udp.bind(50314);
console.log(udp,udp.onListening,udp.send);
console.log('port',port);
setInterval(() => {
udp.send({
address:'255.255.255.255',
port:8081,
message
});
}, 2000);
console.log(message);
udp.onMessage((res) => {
console.log('res:',res)
//字符串转换,很重要
let unit8Arr = new Uint8Array(res.message);
let encodedString = String.fromCharCode.apply(null, unit8Arr);
let dat = decodeURIComponent(escape((encodedString)));
console.log("data:", dat);
let str = JSON.parse(dat);
console.log(str);
switch (str.code) {
//成功收到信息
case 0:
udp.send({
address:'255.255.255.255',
port:8081,
message
});
let steps = this.data.steps;
steps[0].success = true;
this.setData({ steps });
break;
//成功解析到信息
case 1:
udp.send({
address:'255.255.255.255',
port:8081,
message:'I GOT YOU'
});
steps = this.data.steps;
steps[1].success = true;
this.setData({ steps });
udp.offListening();
udp.offMessage();
udp.offClose();
udp.close();
wx.connectWifi({
SSID: ssid,
password: password,
success:()=>{
wx.onWifiConnected((result) => {
let steps = this.data.steps;
steps[2].success = true;
this.setData({ steps });
wx.hideLoading()
const newUdp = wx.createUDPSocket();
const newPort = newUdp.bind(50314);
newUdp.onListening(res => {
console.log('再次监听中。。。');
});
newUdp.onMessage(re => {
let _unit8Arr = new Uint8Array(re.message);
let _encodedString = String.fromCharCode.apply(null, _unit8Arr);
let _dat = decodeURIComponent(escape((_encodedString)));
console.log("data:", _dat);
newUdp.send({
address:'255.255.255.255',
port:8081,
message:'BIND SUCCESS !'
});
newUdp.offListening();
newUdp.offMessage();
newUdp.offClose();
newUdp.close();
})
});
wx.showToast({
title: '准备连接路由器',
})
}
});
break;
//成功连接到路由器
// case 2:
// wx.showToast({
// title: '成功连接',
// })
// break;
// //连接失败路由器
// case 3:
// wx.showToast({
// title: '连接失败',
// })
// break;
}
})
},
lookPwd(){
let pwdHide = !this.data.pwdHide;
this.setData({ pwdHide });
},
inputPwd(e){
this.setData({ password:e.detail.value })
},
inputDevicePWD(e){
this.setData({ devicePWD:e.detail.value })
},
inputAcc(e){
this.setData({ ssid:e.detail.value })
},
inputDeviceSSID(e){
this.setData({ deviceSSID:e.detail.value })
},
onConnect(){
const that = this;
wx.showLoading({
title: '连接中',
mask:true
})
console.log("ssid:", this.data.deviceSSID, ",password:", this.data.devicePWD);
wx.connectWifi({
SSID: this.data.deviceSSID,
password: this.data.devicePWD,
}).then((res)=>{
console.log(res);
// if (res.wifiMsg===alreadyConnected) {
// wx.hideLoading();
// that.udpConnect();
// }else{
// wx.onWifiConnected((result) => {
// wx.hideLoading();
// // that.setData({ active:++that.data.active });
// that.udpConnect();
// })
// }
}).catch((err)=>{
wx.hideLoading();
wx.showToast({
title: '连接失败',
icon:'error'
})
console.error(err);
});
wx.onWifiConnected((result) => {
wx.hideLoading();
that.setData({ activeTop:++that.data.activeTop });
that.udpConnect();
})
},
closeUDP(){
this.data.udp.close();
},
onUnload(){
try {
this.data.udp.close();
} catch (error) {
// console.error(error);
}
},
onShow(){
this.getWifiInfo();
}
});