本文为您详细介绍uni-app开发框架集成号码认证服务原生语言插件的方法及本机号码校验相关方法的说明。
在使用过程中如有疑问,可以提交工单联系阿里云技术工程师处理。
背景信息
uni-app原生语言插件
阿里云号码认证SDK插件是基于HBuilder提供的uni-app原生插件扩展能力开发出的认证插件,开发者可以轻松将阿里云号码认证能力集成到自己的项目中,在JS层实现相关功能。
本插件使用原生语言开发,仅支持在uni-app开发框架开发的Android或iOS应用中使用,无法在其他各类小程序中使用。
在项目中引入插件
创建uni-app项目。
如果您还未创建uni-app项目,可参考DCloud官方文档通过HBuilder可视化界面创建项目。
如果您已有项目,可直接进入下一步。
下载插件。
访问插件地址:阿里云号码认证SDK,进入插件详情页。
点击界面右侧的下载for离线打包下载插件。
项目中引入插件。
在项目的根目录新建nativeplugins文件夹,将下载的AliCloud-NirvanaPns_1.1.0.zip解压后引入
nativeplugins
文件夹。打开根目录
manifest.json
文件,单击App原生插件配置 > 选择本地插件。在本地插件选择对话框,勾选阿里云号码认证SDK。
单击确定即可引入。
创建方案号
您导入项目或调用API接口时,会用到方案Code等参数信息,请先在号码认证产品控制台,创建认证方案,获取方案Code等参数信息。
交互流程详解
完整的功能交互流程请参见本机号码校验交互流程。
方法说明
引入方式
在vue或者nvue文件中,通过使用uni.requireNativePlugin
方法引入原生插件。
调用示例
const aLiSDKModule = uni.requireNativePlugin('AliCloud-NirvanaPns');
setAuthSDKInfo(设置密钥)
方法说明:必调方法。
使用一键登录前,需要先设置密钥,并确保密钥跟Bundle Id或包名匹配。
参数说明: setAuthSDKInfo(info)
参数 | 类型 | 说明 |
info | String | 阿里云号码认证控制台生成的密钥 |
调用示例
aLiSDKModule.setAuthSDKInfo("从阿里云控制台获取的密钥");
accelerateVerify(加速号码校验)
加速本机号码校验Token的获取。
建议在调用获取本机号码校验Token方法前,提前一段时间调用该加速方法,中间最好有2~3秒的缓冲(因为加速方法需要1~3秒的时间取得临时凭证)。
尽量不要多次调用。
打开App就获取本机号码校验Token的场景不需要调用此方法。
参数说明:accelerateVerify(timeout, callback)
参数 | 类型 | 说明 |
timeout | Number | 设置接口超时时间,单位:毫秒。 |
callback(args) | Function | 回调函数。回调函数入参结构如下:
|
调用示例
aLiSDKModule.accelerateVerify(5000, (result) => {
console.log(JSON.stringify(result));
if ("600000" == result.resultCode) {
console.log("加速获取本机号码校验Token成功");
} else {
console.log("加速获取本机号码校验Token失败," + result.msg);
}
});
getVerifyToken(获取本机号码校验Token)
获取本机号码校验Token。
参数说明:getVerifyToken(timeout, callback)
参数 | 类型 | 说明 |
timeout | Number | 设置接口超时时间,单位:毫秒。 |
callback(args) | Function | 回调函数。回调函数入参结构如下:
|
调用示例
aLiSDKModule.getVerifyToken(5000, (result) => {
if ("600000" == result.resultCode) {
console.log(
"获取本机号码校验token成功,接下面需要拿手机号和token去服务端进行校验,SDK服务到此结束"
);
}
});
getVersion(获取号码认证SDK版本号)
参数说明:getVersion(callback)
参数 | 类型 | 说明 |
callback(version) | Function | 回调函数。回调函数入参结构如下:
|
调用示例
aLiSDKModule.getVersion((version) => {
console.log("当前SDK版版本号为:" + version);
});
checkEnvAvailable(环境检查)
检查当前环境是否支持一键登录/本机号码校验。
参数说明:checkEnvAvailable(authType, callback)
参数 | 类型 | 说明 |
authType | Number | 检查类型:
|
callback(args) | Function | 回调函数。回调函数入参结构如下:
|
调用示例
aLiSDKModule.checkEnvAvailable(2, (result) => {
if ("600000" == result.resultCode) {
uni.navigateTo({
animationDuration: 300,
url: "../login/login",
});
} else {
console.log("当前环境不支持一键登录,result = ", JSON.stringify(result));
uni.showToast({
icon: "none",
title: result.msg,
duration: 3000,
});
}
});
getCurrentCarrierName(获取默认上网卡运营商)
参数说明:getCurrentCarrierName(callback)
返回值 | 类型 | 说明 |
callback(carrierName) | Function | 回调函数。回调函数入参结构如下:
|
调用示例
aLiSDKModule.getCurrentCarrierName((carrierName) => {
console.log("当前运营商为:" + carrierName);
});
setCheckboxIsChecked(设置勾选框是否自动勾选)
参数说明
参数 | 类型 | 说明 |
isChecked | Number | 是否自动勾选。
|
调用示例
aLiSDKModule.setCheckboxIsChecked(true)
closePrivactAlertView(关闭二次授权弹窗)
调用示例
aLiSDKModule.closePrivactAlertView()