配置
打开项目根目录的build.gradle,在buildscrip–>dependencies 模块下面添加 classpath ‘com.mob.sdk:MobSDK:+’,如下所示:
buildscript {
repositories {
…
}
dependencies {
…
classpath “com.mob.sdk:MobSDK:2018.0319.1724”
}
}
在使用SMSSDK模块的build.gradle中,添加MobSDK插件和扩展,如下所示:
// 添加插件
apply plugin: ‘com.mob.sdk’
// 在MobSDK的扩展中注册SMSSDK的相关信息
MobSDK {
appKey “申请Mob的appkey”
appSecret “申请Mob的AppSecret”
SMSSDK {}
}
发送代码
目前SMSSDK提供两套接口方案,一种是默认的UI集成即可,如下1-1所示;另一种是不使用我们的UI,直接调用发送和验证接口,如下1-2所示;
1-1.以可视化界面完成操作
javakotlin
fun sendCode(context: Context) {
val page = RegisterPage()
//如果使用我们的ui,没有申请模板编号的情况下需传null
page.setTempCode(null)
page.setRegisterCallback(object : EventHandler() {
fun afterEvent(event: Int, result: Int, data: Any) {
if (result == SMSSDK.RESULT_COMPLETE) {
// 处理成功的结果
val phoneMap = data as HashMap<String, Any>
// 国家代码,如“86”
val country = phoneMap["country"] as String
// 手机号码,如“13800138000”
val phone = phoneMap["phone"] as String
// TODO 利用国家代码和手机号码进行后续的操作
} else {
// TODO 处理错误的结果
}
}
})
page.show(context)
}
1-2、以无界面接口完成操作
a.注册监听回调,后面执行发送验证的时候才能正常收到回调
javakotlin
val eh = object : EventHandler() {
override fun afterEvent(event: Int, result: Int, data: Any?) {
// TODO 此处不可直接处理UI线程,处理后续操作需传到主线程中操作
val msg = Message()
msg.arg1 = event
msg.arg2 = result
msg.obj = data
mHandler.sendMessage(msg)
}
}
//注册一个事件回调监听,用于处理SMSSDK接口请求的结果
SMSSDK.registerEventHandler(eh)
如上,后续判断回调类型可参考文档 无GUI接口调用
b.发送验证码,具体参数可以参考 无GUI接口调用
javakotlin
// 请求验证码,其中country表示国家代码,如“86”;phone表示手机号码,如“13800138000”
SMSSDK.getVerificationCode(country, phone)
c.验证验证码,具体参数可以参考 无GUI接口调用
javakotlin
// 提交验证码,其中的code表示验证码,如“1357”
SMSSDK.submitVerificationCode(country, phone, code)
d.注销监听,避免内存泄露
javakotlin
// 使用完EventHandler需注销,否则可能出现内存泄漏
override fun onDestroy() {
super.onDestroy()
SMSSDK.unregisterEventHandler(eventHandler)
}