典型的WIFI连接界面
这是一个典型的WIFI连接界面,进入后自动获取SSID列表,选择WIFI热点后,输入密码,可以直接连接;如果连接成功,SSID和密码会自动记录下来;
页面源代码的核心部分
void app.onWIFI32(int m){
int size;
int code;
if (m==1){
//wifi_scan
s1.listtext=wifi_getinfo(1);
s1.reloadtext();
}
if (m==2){
//wifi_connect
t1.text=wifi_getinfo(1);
t1.startview();
code=wifi_getinfo(8);
if (code==3){
//连接成功
//l1.text="状态:已连接,IP:"+wifi_getinfo(7);
bind_set("wifissid",s2.text);
bind_set("wifipass",s3.text);
memsave();
}
if (code==4){
//连接失败
//l1.text="状态:连接失败";
}
}
};
void app.onASYNC(int m){
if (m==1){
wifi_scan();
t1.text="正在读取WIFI热点";
t1.startview();
}
}
void s1.onselect()
{ s2.text=s1.seltext;
}
void s4.onclick()
{ wifi_connect(s2.text,s3.text);
}
void s5.onclick()
{ gopage(0);
}
bind(s2.text,"wifissid");
bind(s3.text,"wifipass");
async_run(1); //异步调用wifi_scan
start();
代码讲解:
- 第一步:页面启动wifi_scan 获取ssid列表
bind(s2.text,"wifissid");
bind(s3.text,"wifipass");
async_run(1); //异步调用wifi_scan
页面开始先在start()语句前执行上面三句代码,首先,将s2 s3两个控件的text属性绑定bind数据,也就是自动将ssid和passwd的输入框设置成存储的数据,然后异步调用1号异步程序;
在异步程序处理中:
void app.onASYNC(int m){
if (m==1){
wifi_scan();
t1.text="正在读取WIFI热点";
t1.startview();
}
}
m==1的时候,调用wifi_scan函数,同时在toast控件显示正在读取WIFI热点;
当wifi_scan执行完成后,会调用onWIFI32:
void app.onWIFI32(int m){
int size;
int code;
if (m==1){
//wifi_scan
s1.listtext=wifi_getinfo(1); //获取ssid列表字符串
s1.reloadtext(); //界面刷新
}
}
于是,ssid显示在selectlist中。
- 第二步:通过edit控件编辑ssid的名称和passwd密码
详细参见edit控件;
- 第三步:wifi连接
void s4.onclick()
{ wifi_connect(s2.text,s3.text);
}
点击连接按钮后,调用wifi_connect语句,当wifi连接有信息时,会调用onWIFI32事件:
void app.onWIFI32(int m){
int size;
int code;
if (m==2){
//wifi_connect
t1.text=wifi_getinfo(1);
t1.startview();
code=wifi_getinfo(8);
if (code==3){
//连接成功
//l1.text="状态:已连接,IP:"+wifi_getinfo(7);
bind_set("wifissid",s2.text);
bind_set("wifipass",s3.text);
memsave();
}
if (code==4){
//连接失败
//l1.text="状态:连接失败";
}
}
};
于是,wifi连接成功;具体详细信息参见wifi_connect()等其他语句。