首先,eclipse导入官方的apicloudSDK,别问我哪里下载这种问题。。。

本人使用的验证方式为mob 连接在此 http://mob.com/,这个自己百度,免费发送短信的,在官网下载太慢的SDK,并且导入

然后新建一个类,这里短信模块的类我起名为sendSms.java

并且继承uzmodule这个类

public class sendSms extends UZModule{

    UZModuleContext moduleContext;
    
    public sendSms(UZWebView webView) {
            super(webView);
    }
}

然后就可以开始写映射的方法了,这里我起名方法叫jsmethod_telverify

public void jsmethod_telverify(UZModuleContext moduleContext){
            //打开注册页面
            this.moduleContext=moduleContext;
            String appID = moduleContext.optString("appID");
            String key = moduleContext.optString("key");
            telverify(appID,key);
    }

简单讲讲上面的代码,就是apicloud那边再require完模块后,就点用telverify的方法,并且传入参数,appID和key,这个看官网哈,自己申请个应用就O了

在调用了jsmethod_telverify这个方法后,大家发现里面有个telverify的方法

private void telverify(String appID,String key){
            SMSSDK.initSDK(getContext(), appID, key);
            RegisterPage registerPage = new RegisterPage();
            registerPage.setRegisterCallback(new EventHandler() {
                    public void afterEvent(int event, int result, Object data) {
                            // 解析注册结果
                            if (result == SMSSDK.RESULT_COMPLETE) {
                                    @SuppressWarnings("unchecked")
                                    HashMap<String,Object> phoneMap = (HashMap<String, Object>) data;
                                    String country = (String) phoneMap.get("country");
                                    String phone = (String) phoneMap.get("phone"); 
                                    callback(phone);
                                    // 提交用户信息
//                                        registerUser(country, phone);
                                }
                        }
                });
                registerPage.show(getContext());
        }

再简单讲讲,initSDK这是mob官方要求一定要先初始化的,下面的代码基本都是官方自带的了,重点就在于中间那个callback的方法,好,我们再看看callback

private void callback(String telnumber){
            JSONObject result = new JSONObject();
            try{
                    result.put("telnumber", telnumber);
                    moduleContext.success(result, true);
            }catch(JSONException e){
                    e.printStackTrace();
            }
    }

callback是回调函数,我这里的写法大家可以自行优化啊,也就是function(ret){}这样的形式

返回的就是一个电话号码的json对象

再去assets里面的uzmap看看那个module.json

加上一个

            {
                name:'sendSms',
                class:'com.apicloud.moduleDemo.sendSms'
            }

name的内容自己取,这是你调用模块的模块名,下面的class要对应好就行了

再看看apicloud那边如何进行调用

function toSendSmsView(){
                    var sendSms = api.require('sendSms');
                    sendSms.telverify({appID:'507e510ec***',key:'6937a458d62c1534b977b4cd655*****'},
                            function(ret){
                                    var urlJson = JSON.stringify(ret);
                                    alert(urlJson);
                            });
            }

在需要的地方调用这方法就行了