起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9270|回复: 14

[处理中3] wex5集成的短信验证码插件MOB的代码能详细说明

  [复制链接]

51

主题

195

帖子

757

积分

高级会员

Rank: 4

积分
757
QQ
发表于 2017-8-2 22:40:55 | 显示全部楼层 |阅读模式
require("cordova!com.justep.cordova.plugin.security.mob");

//获取手机验证码
        Model.prototype.sendsmsButton = function(event) {
               
                if (!navigator.mobsms) {
                        justep.Util.hint("请安装最新版本(含插件)体验!");
                        return;
                }
                ;
                var phoneInput = this.comp("phonenumber").val();
                var reg = /^0?1[3|4|5|7|8][0-9]\d{8}$/;
                if (reg.test(phoneInput)) {
                        this.comp("sendsmsbutton").mytimer();
                        navigator.mobsms.send({
                                "zone" : "86",
                                "phoneNumber" : phoneInput
                        }, function(info) {
                        }, function(err) {
                                justep.Util.hint(err);
                        });
                } else {
                        justep.Util.hint("手机号码不正确!")
                }
        };

//注册保存事件代码
Model.prototype.verifyButton = function(event) {
                var self = this;
                var phoneInput = this.comp("phonenumber").val();
                var verifyCode = this.comp("verifyCode").val();
                var reg = /^0?1[3|4|5|7|8][0-9]\d{8}$/;
                var verifyCodeReg = /^\d{4}$/;

                if (verifyCodeReg.test(verifyCode) && reg.test(phoneInput)) {
                        function success(info) {
                                if (info.result == -1) {
                                        self._userID = phoneInput;

                                        justep.Shell.userType.set("ISM");
                                        justep.Shell.userName.set(self._userID);
                                        localStorage.removeItem("userUUID");

                                        var user = {};
                                        user.userid = self._userID;
                                        user.accountType = "ISM";
                                        user.name = self._userID || "NONAME";
                                        localStorage.setItem("userUUID", JSON.stringify(user));

                                        var userData = self.comp('userData');
                                        userData.setValue("fID", phoneInput);

                                        var reslut = userData.saveData();

                                        setTimeout(function() {
                                                justep.Shell.closePage();
                                        }, 3000);
                                } else
                                        justep.Util.hint("验证失败:" + JSON.stringify(info), {
                                                "type" : "danger"
                                        });
                        }
                        ;

                        function fail(info) {
                                alert("失败:" + JSON.stringify(info));
                        }
                        ;

                        this.verify({
                                "zone" : "86",
                                "phoneNumber" : phoneInput,
                                "verificationCode" : verifyCode
                        }, success, fail);
                } else {
                        justep.Util.hint("验证码有误!")
                };
        };

//其他这些代码是用处什么的
        Model.prototype.verify = function(args, success, error) {
                navigator.mobsms.verify(args, success, error);
        };

        function Timmer(loopSecond, titile1, title2, lisentner) {
       
                // 还要检查一个结果返回变量。
                this.loopSecond = loopSecond;
                this.waittime = loopSecond;
                var self = this;
                this.mytimer = function() {
                        if (self.waittime <= 0) {
                                self.set({
                                        "disabled" : false,
                                        "label" : titile1
                                });
                                this.waittime = loopSecond; // 可设 60秒
                        } else {
                                self.set({
                                        "disabled" : true,
                                        "label" : title2 + "(" + self.waittime + ")"
                                });
                                self.waittime--;
                                setTimeout(function() {
                                        self.mytimer();
                                }, 1000);
                        }
                }

        };

说明越详细越好谢谢

51

主题

195

帖子

757

积分

高级会员

Rank: 4

积分
757
QQ
 楼主| 发表于 2017-8-2 22:43:54 | 显示全部楼层
怎样才能发来的短信验证码对比,代码怎样写?
回复 支持 反对

使用道具 举报

发表于 2017-8-3 11:04:02 | 显示全部楼层
没有代码详细说明!只能自己理解了!
可以真机调试,debugger跟踪代码!要学会自己看代码!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

2

主题

17

帖子

51

积分

初级会员

Rank: 2

积分
51
QQ
发表于 2017-8-7 16:34:56 | 显示全部楼层
这段代码是wex5仿网易客户端那段。但是MOB插件是2.0版本,我特地去MOB官方网站上问的。但是如果照着WEX5仿网易那个打包运行,验证码是能发出去,但是填入数字验证的时候就提示this.comp is not a function的错误。但是MOB后台查看记录是显示验证通过的。
回复 支持 反对

使用道具 举报

发表于 2017-8-7 17:20:00 | 显示全部楼层
autozhaopu 发表于 2017-8-7 16:34
这段代码是wex5仿网易客户端那段。但是MOB插件是2.0版本,我特地去MOB官方网站上问的。但是如果照着WEX5仿 ...

this.comp is not a function  应该是调用this的地方不对
http://docs.wex5.com/wex5-ui-question-list-2160
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

8

主题

65

帖子

185

积分

初级会员

Rank: 2

积分
185
QQ
发表于 2017-8-7 22:13:26 | 显示全部楼层
坐等解决
回复

使用道具 举报

2

主题

17

帖子

51

积分

初级会员

Rank: 2

积分
51
QQ
发表于 2017-8-8 08:37:56 | 显示全部楼层
本帖最后由 autozhaopu 于 2017-8-8 08:39 编辑

debugger调试这段直接报错。但是MOB后台依旧验证成功,提示Function declarations should not be placed in blocks. Use a function expression or move the
statement to the top of the outer function

error.jpg
回复 支持 反对

使用道具 举报

发表于 2017-8-8 11:16:17 | 显示全部楼层
autozhaopu 发表于 2017-8-8 08:37
debugger调试这段直接报错。但是MOB后台依旧验证成功,提示Function declarations should not be placed in ...

看我的连接!在回调函数中不能使用this.comp()

http://docs.wex5.com/wex5-ui-question-list-2160

应该先定义变量me

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

2

主题

17

帖子

51

积分

初级会员

Rank: 2

积分
51
QQ
发表于 2017-8-8 11:49:43 | 显示全部楼层
liangyongfei 发表于 2017-8-8 11:16
看我的连接!在回调函数中不能使用this.comp()

http://docs.wex5.com/wex5-ui-question-list-2160

好的吧,我试试
回复 支持 反对

使用道具 举报

31

主题

116

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
QQ
发表于 2017-8-8 12:49:41 | 显示全部楼层

老师,我下面的代码短信验证后alert没执行就提示Cannot read property 'set' of undefined
能帮我看看是什么问题吗?


Model.prototype.verifyButton = function(event) {

                var self = this;
                var reg = /^0?1[3|4|5|7|8][0-9]\d{8}$/;
                var verifyCodeReg = /^\d{4}$/;


                if (verifyCodeReg.test(verifyCode)) {      

               

                        function success(info) {                  

                                if (info.result == -1) {                          


                 var userData = self.comp('userData');
                 var phonenumber = self.comp("phonenumber").val();
                 alert(phonenumber);
                 var pw=self.comp("password").val();
                 alert(pw);
                 var name=self.comp("name").val();
                 alert(name);
                 var dpt=self.comp("dpt").val();
                 alert(dpt);
                 var wd=self.comp("windowDialog1");

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-27 21:02 , Processed in 0.063752 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表