典型的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();

代码讲解:

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控件;

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()等其他语句。