uni-app接入

本文为您详细介绍uni-app开发框架集成号码认证服务原生语言插件的方式及一键登录相关方法的说明。

说明

在使用过程中如有疑问,可以提交工单联系阿里云技术工程师处理。

背景信息

uni-app原生语言插件

阿里云号码认证SDK插件是基于HBuilder提供的uni-app原生插件扩展能力开发出的认证插件,开发者可以轻松将阿里云号码认证能力集成到自己的项目中,在JS层实现相关功能。

重要

本插件使用原生语言开发,仅支持在uni-app开发框架开发的AndroidiOS应用中使用,无法在其他各类小程序中使用。

在项目中引入插件

  1. 创建uni-app项目。

    1. 如果您还未创建uni-app项目,请参见通过HBuilder可视化界面创建项目

    2. 如果您已有项目,可直接进入下一步。

  2. 下载插件。

    1. 访问插件地址:阿里云号码认证SDK,进入插件详情页。

    2. 点击界面右侧的下载 for 离线打包下载插件。

  3. 项目中引入插件。

    1. 在项目的根目录新建nativeplugins文件夹,将下载的AliCloud-NirvanaPns_x.x.x.zip解压后引入nativeplugins文件夹。37

    2. 打开根目录manifest.json文件,单击App原生插件配置 > 选择本地插件38

    3. 本地插件选择对话框,勾选阿里云号码认证SDKimage

    4. 单击确定即可引入。

创建认证方案

您导入项目或调用API接口时,会用到方案Code等参数信息,请先在号码认证产品控制台创建认证方案,获取方案Code等参数信息。

交互流程详解

完整的功能交互流程请参见一键登录交互流程

方法说明

引入方式

vue或者nvue文件中,通过使用uni.requireNativePlugin方法引入原生插件。

调用示例

const aLiSDKModule = uni.requireNativePlugin('AliCloud-NirvanaPns');

setAuthSDKInfo(设置密钥)

方法说明:必调方法。

使用一键登录前,需要先设置密钥,并确保密钥跟Bundle Id或包名匹配。

参数说明: setAuthSDKInfo(info)

参数

类型

说明

info

String

阿里云号码认证控制台生成的密钥

调用示例

aLiSDKModule.setAuthSDKInfo("<SDK_INFO>"); //替换为从控制台获取的密钥

accelerateLoginPage(加速唤起授权页)

加速唤起授权页,防止调用getLoginToken等待弹起授权页时间过长。

  • 建议在判断当前用户属于未登录状态时使用,已登录状态用户请不要调用该方法。

  • 建议在调用唤起授权页的方法前,提前一段时间调用预取号方法,中间最好有2~3秒的缓冲(因为加速方法需要1~3秒的时间取得临时凭证)。

  • 请勿频繁多次调用。

  • 请勿与唤起授权登录页同时或之后调用。

  • 打开App就登录的场景不需要调用此接口,无法起到加速效果。

参数说明

参数

类型

说明

timeout

Number

设置接口超时时间,单位:毫秒。

callback(args)

Function

回调函数。回调函数入参结构如下:

  • resultCode: 600000表示接口调用成功。

  • msg: 相关提示信息。

调用示例

aLiSDKModule.accelerateLoginPage(5000, (result) => {
  if ("600000" == result.resultCode) {
    console.log("加速成功");
  }
});

getLoginToken(唤起一键登录授权页

获取一键登录Token,调用该接口会唤起授权页,点击授权页的登录按钮获取Token。

参数说明

参数

类型

说明

timeout

Number

设置接口超时时间,单位:毫秒。

authUiConfig

Map

授权页UI配置,详情参见修改授权页主题配置

tokenCallback(args)

Function

在此回调可判断调用状态。回调函数入参结构如下:

  • resultCode:600000表示接口调用成功。

  • msg:相关提示信息。

  • token:最终换取手机号码的Token,只有在resultCode值为600000的时候该字段才会有值。

uiCallback(args)

Function

点击自带控件回调。回调函数入参结构如下:

customUiCallback(args)

Function

点击自定义控件回调。回调函数入参结构如下:

  • widgetId: 可通过该字段识别自定义控件。

授权页点击事件响应码

resultCode

相关描述

700000

点击返回,⽤户取消免密登录

700001

点击切换按钮,⽤户取消免密登录

700002

点击登录按钮事件

700003

点击check box事件

700004

点击协议富文本文字事件

示例代码

aLiSDKModule.getLoginToken(
  5000,
  config,
  tokenResult => {
    if ("600001" == tokenResult.resultCode) {
      console.log("授权页拉起成功");
    } else if ("600000" == tokenResult.resultCode) {
      console.log(
        "获取Token成功,接下来拿着结果里面的Token去服务端换取手机号码,SDK服务到此结束"
      );
      //手动关闭授权页
      aLiSDKModule.quitLoginPage();
    } else {
      //其他失败情况,手动关闭授权页
      aLiSDKModule.quitLoginPage();
    }
  },
  clickResult => {
    switch (clickResult.resultCode) {
      case "700000":
        console.log("用户点击返回按钮");
        break;
      case "700001":
        console.log("用户切换其他登录方式");
        break;
      case "700002":
        console.log("用户点击登录按钮");
        //通过isChecked字段可以得到checkbox是否勾选,未勾选可以用自定义Toast进行提示
        if (!clickResult.result.isChecked) {
          //Toast样式可参考:https://www.html5plus.org/doc/zh_cn/nativeui.html#plus.nativeUl.toast
          plus.nativeUI.toast("请同意服务条款"); //本Toast需手动添加
        }
        break;
      case "700003":
        console.log("用户点击checkBox");
        break;
      case "700004":
        console.log("用户点击协议");
        break;
      case "700010":
        //调用userControlAuthPageCancel后方可使用
        console.log("用户点击返回按钮,Android专用");
        break;
      case "700011":
        //调用userControlAuthPageCancel后方可使用
        console.log("用户使用物理返回键,Android专用");
        break;
    }
  },
  customUiResult => {
    //这里回调的是自定义控件的点击事件,通过 customUiResult.widgetId 来识别自定义控件,然后做一些自己的处理
  }
);

quitLoginPage(退出授权页)

获取完登录token之后不会关闭授权页,需要主动调用该接口退出授权页。

调用示例

aLiSDKModule.quitLoginPage();

hideLoginLoading(关闭授权页Loading动画)

关闭获取Token过程中,页面的loading动画。

Android:获取Token结果回调后不会关闭loading,需要主动调用该接口关闭loading。

iOS:获取Token结果回调后会主动关闭loading,如果您想手动控制loading消失事件,需要在UI配置的uiConfig配置项里加autoHideLoginLoading: "false"

调用示例

aLiSDKModule.hideLoginLoading();

修改授权页主题配置

以下配置仅供参考,请勿直接复制到代码中,如需调整UI,根据需要选择相应的属性。

{
    uiConfig: {
      globalFontName: "static/testFont.ttf",//设置全局字体,如果采用的是系统自带字体,则只要传入字体名称即可,比如"PingFangSC-Regular",若采用第三方字体,需要传入字体的相对路径比如字体文件放在static目录下,则需要传入"static/testFont.ttf"
      setPrivacyAlertIsNeedShow: true,//二次弹窗是否显示  默认false
      setStatusBarStyle: "1", //设置状态栏字体样式(1:Light 亮色,2:Dark 暗色),不设置则跟随App进入界面
      setNavHidden: "false", //是否隐藏导航栏,默认不隐藏(true:隐藏,false:不隐藏)
      setLogoHidden: 'false', //是否隐藏中间的Logo图片,默认不隐藏(true:隐藏,false:不隐藏)
      setSloganHidden: "false", //是否隐藏slogan文案,默认不隐藏(true:隐藏,false:不隐藏)
      setSwitchHidden: "true", //是否隐藏“切换方式”按钮(true:隐藏,false:不隐藏)
      setCheckboxHidden: "false", //是否隐藏隐私协议前面的勾选框(true:隐藏,false:不隐藏,如果隐藏代表用户强制同意协议,请谨慎使用)
      //设置弹窗样式相关,不配置该属性则默认为全屏
      setDialogTheme: {
        alpha: "0.2", //弹框背部蒙层透明度
        isBottom: "false", //是否是底部弹出的窗口(true:是,false:否,默认为false中间弹出)
        offsetX: "0", //弹框位置横向偏移距离,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        offsetY: "0", //弹框位置纵向偏移距离,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        width: "300", //弹框宽度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        height: "400", //弹框高度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      },
      //授权页背景相关设置
      setBackgroundUi: {
        backgroundColor: "#EA7F32", //授权页背景色,如果是弹窗的话就是弹窗部分的背景色(ps:在加载图片或者视频时,可以设置跟第一帧接近的背景色,这样可以避免在资源加载期间出现白屏效果)
        imagePath: "", //授权页背景图片本地资源路径,优先级最高,默认铺满全屏,如果想设置位置和大小可以尝试用下面的webview或weex渲染背景方案来实现
        imageUrl: "", //授权页背景图片网络URL,优先级位于imagePath之后,默认铺满全屏,如果想设置位置和大小可以尝试用下面的webview或weex渲染背景方案来实现
        gifPath: "", //授权页背景GIF本地资源路径,优先级位于imageUrl之后,默认铺满全屏,如果想设置位置和大小可以尝试用下面的webview或weex渲染背景方案来实现
        gifUrl: "", //授权页背景GIF网络URL,优先级位于gifPath之后,默认铺满全屏,如果想设置位置和大小可以尝试用下面的webview或weex渲染背景方案来实现
        videoPath: "", //授权页背景视频本地资源路径,优先级位于gifUrl之后,默认铺满全屏,如果想设置位置和大小可以尝试用下面的webview或weex渲染背景方案来实现,目前只支持mp4格式
        videoUrl: "", //授权页背景视频网络URL,优先级位于videoPath之后,默认铺满全屏,如果想设置位置和大小可以尝试用下面的webview或weex渲染背景方案来实现
        webviewPath: "", //授权页背景html本地资源路径,使用原生的webview去渲染,默认webview铺满全屏,优先级位于videoUrl之后
        webviewUrl: "", //授权页背景html网络URL,使用原生的webview去渲染,默认webview铺满全屏,优先级位于webviewPath之后
        webviewScrollEnabled: "", //(true 不将网页缩放至屏幕大小 可以滚动 ,false 将网页缩放至屏幕大小,不可以滚动)
        weexJsPath: "", //授权页背景js文件本地资源路径,使用weex渲染,默认view铺满全屏,优先级位于webviewUrl之后,weex渲染的js文件生成详情可以参考附录:使用weex编译生成js文件并渲染到授权页
        weexJsUrl: "", //授权页背景js文件网络URL,使用weex渲染,默认view铺满全屏,优先级位于weexJsPath之后,weex渲染的js文件生成详情可以参考附录:使用weex编译生成js文件并渲染到授权页
      },
      //导航栏相关设置
      setNavUi: {
        bgColor: '#1190ff', //导航栏背景色(注:只针对全屏生效,弹窗时无该属性)
        text: "一键登录", //导航栏标题
        textColor: "#fbfbfb", //导航栏标题颜色
        textSize: "17", //文字大小,注意后面不要加单位(Android默认为sp,iOS默认为pt)
        returnImgHidden: "false", //是否隐藏返回按钮,默认不隐藏(true:隐藏,false:不隐藏)
        returnImgPath: "static/close_black.png", //返回按钮图片路径
        returnImgWidth: "44", //返回按钮的宽度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        returnImgHeight: "44", //返回按钮的宽度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        suspendDisMissVC:true,//是否需要中断返回,该方法生效的前提是setNavHidden为false,如果设置为YES,则点击左上角返回按钮的时候默认页面不消失,同时透出状态码700010,需要自己调用quitLoginPage方法隐藏页面,默认为NO
      },
      //logo相关设置,水平方向默认居中
      setLogoUi: {
        imgPath: "static/mytel_app_launcher.png", //logo图片资源路径
        top: "30", //距离父容器顶部偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        width: "30", //该控件宽度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        height: "60" //该控件高度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      },
      //slogan相关设置,水平方向默认居中
      setSloganUi: {
        text: "由阿里通信提供服务", //slogan标题,不设置则使用默认文案
        textColor: "#FF8247", //自定义slogan文字颜色
        textSize: "12", //文字大小,注意后面不要加单位(Android默认为sp,iOS默认为pt)
        top: "200", //距离父容器顶部偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      },
      //掩码相关设置,水平方向默认居中
      setNumberUi: {
        textColor: "#FF8247", //掩码文字颜色
        textSize: "17", //文字大小,注意后面不要加单位(Android默认为sp,iOS默认为pt)
        left: "20", //距离父容器左侧偏移,不设置则默认居中,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        top: "20", //距离父容器顶部偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      },
      //登录按钮相关设置,水平方向默认居中
      setLoginBtnUi: {
        text: "一键登录^-^", //登录按钮标题,不设置则使用默认
        textColor: "#551A8B", //登录按钮标题颜色
        textSize: "15", //文字大小,注意后面不要加单位(Android默认为sp,iOS默认为pt)
        imgPath: "static/loginBtn_active.png", //按钮背景图片路径,如果需要区分正常效果和点击效果,则使用activeImgPath和hightedImgPath,iOS可以单独设置不可点击状态图片,请设置invalidImgPath属性
        color: "#D8BFD8", //当imgPath或者activeImgPath、invalidImgPath、hightedImgPath属性为空时使用color属性作为按钮背景填充色
        activeImgPath:"",//设置默认状态图片,设置了imgPath之后该属性不生效,该属性需要和invalidImgPath、hightedImgPath一起设置才能生效,android需要和hightedImgPath一起设置才生效
        invalidImgPath:"",//iOS专用,设置不可点击图片,设置了imgPath之后该属性不生效,该属性需要和hightedImgPath、activeImgPath一起设置才能生效
        hightedImgPath:"",//设置高亮状态图片,设置了imgPath之后该属性不生效,iOS该属性需要和activeImgPath、invalidImgPath一起设置才能生效,android需要和activeImgPath一起设置才生效
        left: "20", //距离父容器左侧偏移,不设置则默认居中,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        top: "20", //距离父容器顶部偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        width: "30", //控件宽度,宽度必须大于屏幕的一半,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        height: "30", //控件高度,高度不能小于20,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      },
      //切换其他登录按钮相关设置,水平方向默认居中
      setSwitchUi: {
        text: "切换其他登录方式^-^", //切换其他方式按钮标题,不设置则使用默认
        textColor: "#551A8B", //标题颜色
        textSize: "12", //标题文字大小,注意后面不要加单位(Android默认为sp,iOS默认为pt)
        top: "20", //距离父容器顶部偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      },
      //check box相关设置
      setCheckBoxUi: {
        defaultChecked: "true", //check box默认是否勾选,不设置则默认不勾选,需要用户手动勾选(true:默认勾选,false:默认不勾选)
        unCheckedImgPath: "static/checkbox0", //check box未选中时的图片,必须同时设置 checkedImgPath 有效,该属性才会生效
        checkedImgPath: "static/checkbox1", //check box选中时的图片,必须同时设置 unCheckedImgPath 有效,该属性才会生效
        width: "30", //控件宽高,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        checkBoxPostion:"top",//iOS专用,checkbox的位置,只有两种top或者VerticalCenter,分别对应顶部对齐和垂直居中对齐,填写其他值不生效,默认顶部对齐
        top:10,//android专用,CheckBox上边距,单位dp
      },
      //第一个自定义协议内容配置(最多支持添加3个自定义协议)
      setAppPrivacyOne: {
        title: "《协议1》", //协议标题
        url: "www.taobao.com" //协议链接
      },
      //第二个自定义协议内容配置(最多支持添加3个自定义协议,只有设置了 setAppPrivacyOne 生效,setAppPrivacyTwo才会生效)
      setAppPrivacyTwo: {
        title: "《协议2》", //协议标题
        url: "www.taobao.com" //协议链接
      },
      //第三个自定义协议内容配置(最多支持添加3个自定义协议,只有设置了 setAppPrivacyOne、setAppPrivacyTwo 生效,setAppPrivacyTwo才会生效)
      setAppPrivacyThree: {
        title: "《协议3》", //协议标题
        url: "www.taobao.com" //协议链接
      },
      setPrivacyUi: {
        beforeText: "协议整体前缀", //协议整体文案前缀
        endText: "协议整体后缀", //协议整体文案后缀
        baseColor: "#8B8878", //协议文案非协议部分颜色
        protocolColor: "#FFB5C5", //协议文案协议富文本颜色
        operatorColor:"#FFB5C5",//单独设置运营商协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
        oneColor:"#FFB5C5",//单独设置第一个协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
        twoColor:"#FFB5C5",//单独设置第二个协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
        threeColor:"#FFB5C5",//单独设置第三个协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
        textSize: "13", //协议文字大小,小于12不生效,注意后面不要加单位(Android默认为sp,iOS默认为pt)
        vendorPrivacyPrefix: "《", //供应商协议前缀
        vendorPrivacySuffix: "》", //供应商协议后缀
        conectTexts: "['和','、','、']", //协议名称之间连接字符串数组,默认 ["和","、","、"] ,即第一个为"和",其他为"、",按顺序读取,为空则取默认
        operatorIndex: "0", //运营商协议指定显示顺序,默认0,即第1个协议显示,最大值可为3,即第4个协议显示
        bottom: "20", //距离父容器底部偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        top: "400", //距离父容器顶部偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt),优先级低于bottom
        marginLR: "18", //协议栏左右距离(包含checkbox),注意后面不要加单位(Android默认为dp,iOS默认为pt)
        alignment: "1", //协议栏对齐方式(包括隐私文字)(0:左对齐,1:中间对齐,2:右对齐),默认为左对齐
        expandAuthPageCheckedScope:true,//checkBox是否扩大按钮可交互范围至"协议前缀部分文案(默认:我已阅读并同意)"区域,默认NO IOS专用
      },
      setWebNavUi: {
        bgColor: "#CD1076", //协议详情页的导航栏背景色
        textColor: "#EECFA1", //协议详情页的导航栏标题颜色
        textSize: "30", //协议详情页的导航栏标题大小,注意后面不要加单位,默认单位为sp
        returnImgPath: "/static/close_black.png", //协议页面标题栏返回按钮图标路径
      },
      //二次弹窗属性
      setPrivacyAlertUi:{
        needAutoLogin: true,//点击确认按钮后是否自动登录
        left:"0",//弹窗水平偏移量,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        top:"0",//弹窗竖直偏移量,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        radius:["0","0","0","0"],//四个圆角值,顺序为左上,左下,右下,右上,需要填充4个值,不足4个值则无效,如果值<=0则为直角 ,默认0
        width:"500",//弹窗宽度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        height:"400",//弹窗高度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        alpha:1.0,//二次弹窗透明度范围0.3~1.0
        backgroundColor:"#01001C",//二次弹窗背景色
      },
      //二次弹窗蒙层属性
       setPrivacyAlertMaskUi:{
        needShow: true,//背景蒙层是否显示
        tapMaskClosed: true,//点击背景蒙层是否关闭弹窗
        color:"#000000",//蒙层颜色
        alpha:0.3,// 蒙层透明度范围0.3~1.0
        },
      //二次弹窗顶部标题栏      
       setPrivacyAlertTitleUi:{
        backgroundColor:"#FFFFFF",//顶部标题背景色
        left:"0",//顶部标题水平偏移量,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        top:"0",//顶部标题竖直偏移量,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        width:"",//ios专用,标题宽度,单位pt
        height:"",//ios专用,标题高度,单位pt
        alignment:"", //andriod取值:0居左  1居中,iOS取值0,1,2,3,4,分别对应居左,居中,居右,左右对齐,默认对齐
        text:"请阅读并同意以下条款",//顶部标题文本
        textSize:"18",//顶部标题文本字体大小,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        textColor:"#000000",//顶部标题文本字体颜色
        },
      //二次弹窗顶部关闭按钮
      setPrivacyAlertCloseUi:{
        needShow:true,//关闭按钮是否显示 默认true
        imagPath:"",//关闭按钮图片地址
        left:0,//ios专用,左边距,单位pt
        top:0,//ios专用,上边距,单位pt
        width:"30",//关闭按钮宽度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        height:"30",//关闭按钮高度,注意后面不要加单位(Android默认为dp,iOS默认为pt) 
        },
      //二次弹窗协议文本    
     setPrivacyAlertContentUi:{
        backgroundColor:"#ffffff",//协议内容区域背景颜色
        textSize:"18",//协议文本字体大小,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        alignment:"0",//协议文本字体对齐方式,andriod取值:0居左  1居中,iOS取值0,1,2,3,4,分别对应居左,居中,居右,左右对齐,默认对齐
        left:"",//左边距,android侧为横向两侧边距,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        top:"",//上边距,android侧为纵向两侧边距,注意后面不要加单位(Android默认为dp,iOS默认为pt)
         width:"",//ios专用,单位pt
        height:"",//ios专用,单位pt      
        baseColor:"#000000",//协议文案非协议部分颜色
        protocolColor:"#FFB5C5",//协议文案协议富文本颜色
        privacyAlertOperatorColor:"#FFB5C5",//单独设置运营商协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
        privacyAlertOneColor:"#FFB5C5",//单独设置第一个协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
        privacyAlertTwoColor:"#FFB5C5",//单独设置第二个协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
        privacyAlertThreeColor:"#FFB5C5",//单独设置第三个协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
        privacyAlertBeforeText:"协议整体前缀",//协议整体文案前缀
        privacyAlertEndText:"协议整体后缀"//协议整体文案后缀
        },
      //二次弹窗确认按钮  
      setPrivacyAlertConfirmUi:{
        left:"",//左边距,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        top:"",//上边距,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        width:"200",//确认按钮宽度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        height:"100",//确认按钮高度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        text:"同意",//确认按钮文本
        imgPath:"",//确认按钮背景图地址,如果需要区分正常效果和点击效果,则使用activeImgPath和hightedImgPath
        activeImgPath:"",//设置默认状态图片,设置了imgPath之后该属性不生效,该属性需要和hightedImgPath一起设置才能生效
        hightedImgPath:"",//设置高亮状态图片,设置了imgPath之后该属性不生效,该属性需要和activeImgPath一起设置才能生效
        color:"#FF7F00",//如果没有设置imgPath或activeImgPath,hightedImgPath,则该属性作为按钮的背景颜色
        textColor:"#000000",//确认按钮字体颜色
        hightedTextColor:"#000000",//确认按钮点击字体颜色
        textSize:"18",//确认按钮字体大小默认18dp,注意后面不要加单位(Android默认为dp,iOS默认为pt)      
        },   
    },
    widgets: [{
        widgetId: "widgetId-003", //控件id
        type: "Text", //控件类型,Text,文本,不可以点击
        alignment: "1", //文字对齐方式(Left: 0、Center: 1、Right: 2)
        textContent: "这是一串文本信息", //显示文字
        textSize: "13", //文字大小,注意后面不要加单位(Android默认为sp,iOS默认为pt)
        textColor: "#FFFFFF", //文字颜色
        backgroundColor: "#EE6A50", //控件背景色
        left: "20", //距离父容器左侧偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        top: "20", //距离父容器顶部偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        right: "20", //距离父容器右侧偏移,优先级低于left,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        bottom: "20", //距离父容器底部偏移,优先级低于top,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        width: "30", //控件宽度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        height: "30", //控件高度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      },
      {
        widgetId: "widgetId-002", //控件id,点击该控件时会通过参数回调回来
        type: "Button", //控件类型,Button,按钮,可以点击
        alignment: "1", //文字对齐方式(Left: 0、Center: 1、Right: 2)
        textContent: "这是一个按钮", //按钮标题
        textSize: "13", //文字大小,注意后面不要加单位(Android默认为sp,iOS默认为pt)
        textColor: "#FFFFFF", //文字颜色
        backgroundColor: "#EE6A50", //控件背景色
        backgroundImage: "static/qq.png", //按钮背景图片资源路径
        activeImgPath:"",//设置了imgPath之后该属性不生效,需要和hightedImgPath一起设置才能生效
        hightedImgPath:"",//设置了imgPath之后该属性不生效,需要和activeImgPath一起设置才能生效
        left: "20", //距离父容器左侧偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        top: "20", //距离父容器顶部偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        right: "20", //距离父容器右侧偏移,优先级低于left,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        bottom: "20", //距离父容器底部偏移,优先级低于top,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        width: "30", //控件宽度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        height: "30", //控件高度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      },
      {
        widgetId: "widgetId-001", //控件id
        type: "Image", //控件类型,Image,图片,不可以点击
        imgPath: "static/qq.png", //图片资源路径
        mode: "0", //图片缩放或裁剪模式,默认为0(scaleToFill: 0、aspectFit: 1、aspectFill: 2)
        backgroundColor: "#EE6A50", //控件背景色
        left: "20", //距离父容器左侧偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        top: "20", //距离父容器顶部偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        right: "20", //距离父容器右侧偏移,优先级低于left,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        bottom: "20", //距离父容器底部偏移,优先级低于top,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        width: "30", //控件宽度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
        height: "30", //控件高度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      }
    ],
    privacyAlertWidgets: [{
      widgetId: "privacyAlertWidgetId-001",//控件id
      type: "Button",//控件类型,Button,按钮,可以点击
      textContent:"取消",//按钮标题
      textSize:18, //文字大小,注意后面不要加单位(Android默认为sp,iOS默认为pt)
      textColor:"#000000",//字体颜色
      hightedTextColor:"#000000",//点击字体颜色
      borderColor:"#FF7F00",//边框颜色 ios专用
      borderWidth:1,//边框宽度 ios专用
      backgroundColor:"#FFFFFF",
      //优先级 backgroundImage->activeImgPath和hightedImgPath不为空->backgroundColor
      backgroundImage:"",//背景图片路径  
      backgroundColor:"",//背景颜色路径
      activeImgPath:"",//设置了imgPath之后该属性不生效,需要和hightedImgPath一起设置才能生效
      hightedImgPath:"",//设置了imgPath之后该属性不生效,需要和activeImgPath一起设置才能生效
      left: "40",//左边距,注意后面不要加单位(Android默认为sp,iOS默认为pt)
      top: "40",//上边距,注意后面不要加单位(Android默认为sp,iOS默认为pt)
      width: "150",//按钮宽度,注意后面不要加单位(Android默认为sp,iOS默认为pt)
      height: "50"//按钮高度,注意后面不要加单位(Android默认为sp,iOS默认为pt)
    },
    {
      widgetId: "privacyAlertWidgetId-002", //控件id
      type: "Text", //控件类型,Text,文本,不可以点击
      alignment: "1", //文字对齐方式(Left: 0、Center: 1、Right: 2)
      textContent: "这是一串文本信息", //显示文字
      textSize: "13", //文字大小,注意后面不要加单位(Android默认为sp,iOS默认为pt)
      textColor: "#FFFFFF", //文字颜色
      backgroundColor: "#EE6A50", //控件背景色
      left: "20", //距离父容器左侧偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      top: "20", //距离父容器顶部偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      right: "20", //距离父容器右侧偏移,优先级低于left,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      bottom: "20", //距离父容器底部偏移,优先级低于top,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      width: "30", //控件宽度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      height: "30", //控件高度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
    },
    {
      widgetId: "privacyAlertWidgetId-003", //控件id
      type: "Image", //控件类型,Image,图片,不可以点击
      imgPath: "static/qq.png", //图片资源路径
      mode: "0", //图片缩放或裁剪模式,默认为0(scaleToFill: 0、aspectFit: 1、aspectFill: 2)
      backgroundColor: "#EE6A50", //控件背景色
      left: "20", //距离父容器左侧偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      top: "20", //距离父容器顶部偏移,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      right: "20", //距离父容器右侧偏移,优先级低于left,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      bottom: "20", //距离父容器底部偏移,优先级低于top,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      width: "30", //控件宽度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
      height: "30", //控件高度,注意后面不要加单位(Android默认为dp,iOS默认为pt)
    }]
}

getVersion(获取号码认证SDK版本号)

参数说明:getVersion(callback)

参数

类型

说明

callback(version)

Function

回调函数。回调函数入参结构如下:

  • version: 号码认证SDK版本。

调用示例

aLiSDKModule.getVersion((version) => {
  console.log("当前SDK版版本号为:" + version);
});

checkEnvAvailable(环境检查)

检查当前环境是否支持一键登录/本机号码校验。

参数说明:checkEnvAvailable(authType, callback)

参数

类型

说明

authType

Number

检查类型:

  • 1: 检查号码认证环境。

  • 2: 检查一键登录环境。

callback(args)

Function

回调函数。回调函数入参结构如下:

  • resultCode: 600000表示接口调用成功,环境支持一键登录/本机号码校验。

  • msg: 相关提示信息。

调用示例

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

回调函数。回调函数入参结构如下:

  • carrierName: 当前运营商。

    中国移动:CMCC

    中国联通:CUCC

    中国电信:CTCC

调用示例

aLiSDKModule.getCurrentCarrierName((carrierName) => {
  console.log("当前运营商为:" + carrierName);
});

expandAuthPageCheckedScope(授权页扩展点选范围到协议前缀)

仅适用于Android,授权页扩展点选范围到协议前缀(如我已阅读并同意),true:拓展;false(默认值):不拓展。

调用示例

aLiSDKModule.expandAuthPageCheckedScope(true)

closeAuthPageReturnBack(授权页禁用物理返回键

仅适用于Android,授权页禁用物理返回键,true:禁用;false(默认值):不禁用。

调用示例

aLiSDKModule.closeAuthPageReturnBack(true)

userControlAuthPageCancel(授权页区分界面返回和物理返回

仅适用于Android,授权页区分界面返回和物理返回。

调用示例

aLiSDKModule.userControlAuthPageCancel()

setAuthPageUseDayLight(授权页区是否跟随系统深色/夜间模式

仅适用于Android,授权页区是否跟随系统深色/夜间模式,true:跟随;false(默认值):不跟随。

调用示例

aLiSDKModule.setAuthPageUseDayLight(true)

附录:使用weex编译生成js文件并渲染到授权页

  1. 使用开发工具或Weex Playground编写nvue界面

  2. 使用weex compile指令将vue文件编译成js文件(例如:$ weex compile src/index.vue build

  3. 将编译好的js文件放到工程static目录下,修改一键登录修改授权页主题相关字段(uiConfig>setBackgroundUi>weexJsPath或者weexJsUrl)来将编译好的js渲染到授权页背景上