最近更新:2023-01-13
展开全部

SDK 接口说明

  • JVerificationInterface,包含 SDK 所有接口

设置 Debug 模式

支持的版本

开始支持的版本 1.0.0

接口定义

  • JVerificationInterface.setDebugMode(boolean enable)
    • 接口说明:
      • 设置是否开启 debug 模式。true 则会打印更多的日志信息。建议在 init 接口之前调用。
    • 参数说明:
      • enable:debug 开关
    • 调用示例:
JVerificationInterface.setDebugMode(true);
              JVerificationInterface.setDebugMode(true);

        
此代码块在浮窗中显示

SDK 初始化

支持超时时间配置、回调参数

支持的版本

开始支持的版本 2.5.0

接口定义

  • JVerificationInterface.init(Context context,int timeOut,RequestCallback callback)
    • 接口说明:
      • 初始化接口。建议在 Application 的 onCreate 中调用
    • 参数说明:
      • context:android 的上下文
      • timeOut: 超时时间(毫秒), 有效取值范围(0,30000], 若小于等于 0 或大于 30000 则取默认值 10000. 推荐设置为 5000-10000.
      • callback:回调接口
    • 回调说明:
      onResult(int code, String msg)
      • code: 返回码,8000 代表初始化成功,其他为失败,详见错误码描述
      • msg:结果描述
    • 调用示例:
JVerificationInterface.init(this, 5000, new RequestCallback() { @Override public void onResult(int code, String msg) {Log.d("tag","code =" + code + "msg =" + msg); } });
              JVerificationInterface.init(this, 5000, new RequestCallback<String>() {
                @Override
                public void onResult(int code, String msg) {Log.d("tag","code =" + code + "msg =" + msg);
                }
            });

        
此代码块在浮窗中显示

支持回调参数

支持的版本

开始支持的版本 2.3.6

接口定义

  • JVerificationInterface.init(Context context,RequestCallback callback)
    • 接口说明:
      • 初始化接口。建议在 Application 的 onCreate 中调用
    • 参数说明:
      • context:android 的上下文
      • callback:回调接口
    • 回调说明:**onResult(int code, String msg)**
      • code: 返回码,8000 代表初始化成功,其他为失败,详见错误码描述
      • msg:结果描述
    • 调用示例:
JVerificationInterface.init(this, new RequestCallback() { @Override public void onResult(int code, String msg) {Log.d("tag","code =" + code + "msg =" + msg); } });
              JVerificationInterface.init(this, new RequestCallback<String>() {
                @Override
                public void onResult(int code, String msg) {Log.d("tag","code =" + code + "msg =" + msg);
                }
            });

        
此代码块在浮窗中显示

不带回调参数

支持的版本

开始支持的版本 1.0.0

接口定义

  • JVerificationInterface.init(Context context)
    • 接口说明:
      • 初始化接口。建议在 Application 的 onCreate 中调用
    • 参数说明:
      • context:android 的上下文
    • 调用示例:
JVerificationInterface.init(this);
              JVerificationInterface.init(this);

        
此代码块在浮窗中显示

获取初始化是否成功标识

支持的版本

开始支持的版本 2.3.2

接口定义

  • JVerificationInterface.isInitSuccess()
    • 接口说明:
      • 获取 sdk 是否整体初始化成功的标识
    • 返回结果
      • boolean : true - 成功,false - 失败
    • 调用示例:
boolean isSuccess = JVerificationInterface.isInitSuccess();
              boolean isSuccess = JVerificationInterface.isInitSuccess();

        
此代码块在浮窗中显示

判断网络环境是否支持

支持的版本

开始支持的版本 1.1.3

接口定义

  • JVerificationInterface.checkVerifyEnable(Context context)
    • 接口说明:
      • 判断当前的手机网络环境是否可以使用认证。
    • 参数说明:
      • context:android 的上下文
    • 返回说明:
      • 返回 true 代表可以使用;返回 false 建议使用其他验证方式。
    • 调用示例:
boolean verifyEnable = JVerificationInterface.checkVerifyEnable(this); if(!verifyEnable){Log.d(TAG,"当前网络环境不支持认证"); return; }
              boolean verifyEnable = JVerificationInterface.checkVerifyEnable(this);
        if(!verifyEnable){Log.d(TAG,"当前网络环境不支持认证");
            return;
        }

        
此代码块在浮窗中显示

一键登录

是否获取地理位置信息

支持的版本

开始支持的版本 2.9.6

接口定义

  • JVerificationInterface.setLocationEanable(Context context, boolean eanable)

    • 接口说明:
      • 地理位置获取开关,默认开启, true 为开启。
    • 调用示例:
JVerificationInterface.setLocationEanable(this,true);
                JVerificationInterface.setLocationEanable(this,true);

        
此代码块在浮窗中显示

初始化

调用 SDK 其他流程方法前,请确保已调用过初始化,否则会返回未初始化,详情参考 SDK 初始化 API(会采集信息,建议放到同意协议后调用)。

判断网络环境是否支持

判断当前的手机网络环境是否可以使用一键登录,若网络支持,再调用一键登录 API,否则请调用其他登录方式的 API,详情参考 判断网络环境是否支持 API

预取号

  • sdk 会缓存预取号结果,提升之后授权页拉起速度。所以建议拉起授权页前,比如在开屏页或者业务入口页预先调用此接口进行预取号。
  • 请求成功后,不要频繁重复调用。
  • 不要在预取号回调中重复调用预取号或者拉起授权页接口。

支持的版本

开始支持的版本 2.2.0

接口定义

  • JVerificationInterface.preLogin(Context context, int timeOut, PreLoginListener listener)
    • 接口说明:
      • 验证当前运营商网络是否可以进行一键登录操作,该方法会缓存取号信息,提高一键登录效率。建议发起一键登录前先调用此方法。
    • 参数说明:
      • context:android 的上下文
      • timeOut: 超时时间(毫秒), 有效取值范围(0,10000], 若小于等于 0 则取默认值 5000. 大于 10000 则取 10000, 为保证预取号的成功率,建议设置为 3000-5000ms.
      • listener:接口回调
    • 回调说明:
      onResult(int code, String  content)
      • code: 返回码,7000 代表获取成功,其他为失败,详见错误码描述
      • content:调用结果信息描述
    • 调用示例:
JVerificationInterface.preLogin(this, 5000,new PreLoginListener() { @Override public void onResult(final int code, final String content) {Log.d(TAG,"[" + code + "]message=" + content );} });
                  JVerificationInterface.preLogin(this, 5000,new PreLoginListener() {
            @Override
            public void onResult(final int code, final String content) {Log.d(TAG,"[" + code + "]message=" +  content );}
        });

        
此代码块在浮窗中显示

清除预取号缓存

支持的版本

开始支持的版本 2.4.3

接口定义

  • JVerificationInterface.clearPreLoginCache()
    • 接口说明:
      • 清除 sdk 当前预取号结果缓存。
    • 调用示例:
JVerificationInterface.clearPreLoginCache();
                  JVerificationInterface.clearPreLoginCache();

        
此代码块在浮窗中显示

拉起授权页面(新)

  • 一键登录需要依赖预取号结果,如果没有预取号,一键登录时会自动预取号。
  • 建议拉起授权页前,比如在开屏页或者业务入口页预先调用此接口进行预取号,可以提升授权页拉起速度,优化体验。
  • 一键登录请求成功后,不要频繁重复调用。运营商会限制单位时间内请求次数。
  • 不要在一键登录回调中重复调用预取号或者拉起授权页接口。

支持的版本

开始支持的版本 2.5.2

接口定义

  • JVerificationInterface.loginAuth(final Context context, LoginSettings settings, final VerifyListener listener)
    • 接口说明:
      • 调起一键登录授权页面,在用户授权后获取 loginToken,同时支持授权页事件监听
    • 参数说明:
      • context:android 的上下文
      • settings:登录接口设置项。
      • listener:登录授权结果回调
    • 回调说明:
      VerifyListener
      onResult(int code, String  content, String operator)
      • code: 返回码,6000 代表 loginToken 获取成功,6001 代表 loginToken 获取失败,其他返回码详见描述
      • content:返回码的解释信息,若获取成功,内容信息代表 loginToken。
      • operator:成功时为对应运营商,CM 代表中国移动,CU 代表中国联通,CT 代表中国电信。失败时可能为 null
    • 调用示例:
LoginSettings settings = new LoginSettings(); settings.setAutoFinish(true);// 设置登录完成后是否自动关闭授权页 settings.setTimeout(15 * 1000);// 设置超时时间,单位毫秒。 合法范围(0,30000], 范围以外默认设置为 10000 settings.setAuthPageEventListener(new AuthPageEventListener() { @Override public void onEvent(int cmd, String msg) {//do something...} });// 设置授权页事件监听 JVerificationInterface.loginAuth(this, settings, new VerifyListener() { @Override public void onResult(int code, String content, String operator) {if (code == 6000){Log.d(TAG, "code=" + code + ", token=" + content+",operator="+operator); }else{Log.d(TAG, "code=" + code + ", message=" + content); } } });
              LoginSettings settings = new LoginSettings();
    settings.setAutoFinish(true);// 设置登录完成后是否自动关闭授权页
    settings.setTimeout(15 * 1000);// 设置超时时间,单位毫秒。 合法范围(0,30000], 范围以外默认设置为 10000
    settings.setAuthPageEventListener(new AuthPageEventListener() {
        @Override
        public void onEvent(int cmd, String msg) {//do something...}
    });// 设置授权页事件监听
    JVerificationInterface.loginAuth(this, settings, new VerifyListener() {
         @Override
              public void onResult(int code, String content, String operator) {if (code == 6000){Log.d(TAG, "code=" + code + ", token=" + content+",operator="+operator);
                }else{Log.d(TAG, "code=" + code + ", message=" + content);
                }
              }
          });

        
此代码块在浮窗中显示

支持的版本

开始支持的版本 2.4.0

接口定义

  • JVerificationInterface.loginAuth(final Context context, boolean autoFinish, final VerifyListener listener, final AuthPageEventListener authPageEventListener)
    • 接口说明:
      • 调起一键登录授权页面,在用户授权后获取 loginToken,同时支持授权页事件监听
    • 参数说明:
      • context:android 的上下文
      • boolean:是否自动关闭授权页,true - 是,false - 否
      • listener:登录授权结果回调
      • authPageEventListener:授权页事件回调
    • 回调说明:
      • VerifyListener
        onResult(int code, String  content, String operator)
        • code: 返回码,6000 代表 loginToken 获取成功,6001 代表 loginToken 获取失败,其他返回码详见描述
        • content:返回码的解释信息,若获取成功,内容信息代表 loginToken。
        • operator:成功时为对应运营商,CM 代表中国移动,CU 代表中国联通,CT 代表中国电信。失败时可能为 null
      • AuthPageEventListener
        onEvent(int code, String  content)
        • cmd: 返回码,具体见事件返回码表。
        • content:内容描述。
    • 调用示例:
JVerificationInterface.loginAuth(this, false, new VerifyListener() { @Override public void onResult(int code, String content, String operator) {if (code == 6000){Log.d(TAG, "code=" + code + ", token=" + content+",operator="+operator); }else{Log.d(TAG, "code=" + code + ", message=" + content); } } },new AuthPageEventListener() { @Override public void onEvent(int cmd, String msg) {Log.d(TAG, "[onEvent]. [" + cmd + "]message=" + msg);} });
              JVerificationInterface.loginAuth(this, false, new VerifyListener() {
         @Override
              public void onResult(int code, String content, String operator) {if (code == 6000){Log.d(TAG, "code=" + code + ", token=" + content+",operator="+operator);
                }else{Log.d(TAG, "code=" + code + ", message=" + content);
                }
              }
          },new AuthPageEventListener() {
              @Override
              public void onEvent(int cmd, String msg) {Log.d(TAG, "[onEvent]. [" + cmd + "]message=" + msg);}
          });

        
此代码块在浮窗中显示

事件返回码

code message 备注
1 login activity closed. 授权页关闭事件
2 login activity started. 授权页打开事件
3 carrier privacy clicked. 运营商协议点击事件
3 privacy 1 clicked. 自定义协议 1 点击事件
3 privacy 2 clicked. 自定义协议 2 点击事件
6 checkbox checked. 协议栏 checkbox 变为选中事件
7 checkbox unchecked. 协议栏 checkbox 变为未选中事件
8 login button clicked. 一键登录按钮(可用状态下)点击事件

说明 :获取到一键登录的 loginToken 后,将其返回给应用服务端,从服务端调用 REST API 来获取手机号码

关闭授权页面

支持的版本

开始支持的版本 2.5.2

接口定义

  • dismissLoginAuthActivity(boolean needCloseAnim, RequestCallback callback)
    • 接口说明:
      • 关闭登录授权页,如果当前授权正在进行,则 loginAuth 接口会立即触发 6002 取消回调。
    • 参数说明:
      • needCloseAnim:是否需要展示默认授权页关闭的动画(如果有)。true - 需要,false - 不需要
    • 回调说明:
      RequestCallback
      onResult(int code, String desc)
      • code: 返回码,0 标识成功关闭授权页
      • desc:返回码的描述信息。
    • 调用示例:
JVerificationInterface.dismissLoginAuthActivity(true, new RequestCallback() { @Override public void onResult(int code, String desc) {Log.i(TAG, "[dismissLoginAuthActivity] code =" + code + "desc =" + desc);} });
              JVerificationInterface.dismissLoginAuthActivity(true, new RequestCallback<String>() {
        @Override
        public void onResult(int code, String desc) {Log.i(TAG, "[dismissLoginAuthActivity] code =" + code + "desc =" + desc);}
    });

        
此代码块在浮窗中显示

支持的版本

开始支持的版本 2.3.0

接口定义

  • JVerificationInterface.dismissLoginAuthActivity()
    • 接口说明:
      • 关闭登录授权页,如果当前授权正在进行,则 loginAuth 接口会立即触发 6002 取消回调。
    • 调用示例:
JVerificationInterface.dismissLoginAuthActivity();
              JVerificationInterface.dismissLoginAuthActivity();

        
此代码块在浮窗中显示

自定义授权页面 UI 样式

支持的版本

开始支持的版本 2.1.0

接口定义

  • JVerificationInterface.setCustomUIWithConfig(JVerifyUIConfig uiConfig)
    • 接口说明:
      • 修改授权页面主题,开发者可以通过 setCustomUIWithConfig 方法修改授权页面主题,需在 loginAuth 接口之前调用
    • 参数说明:
      • uiConfig:主题配置对象,开发者在 JVerifyUIConfig.java 类中调用对应的方法配置授权页中对应的元素,详情参考 JVerifyUIConfig 配置元素说明
    • 调用示例:
JVerifyUIConfig uiConfig = new JVerifyUIConfig.Builder().setAuthBGImgPath("main_bg") .setNavColor(0xff0086d0) .setNavText("登录") .setNavTextColor(0xffffffff) .setNavReturnImgPath("umcsdk_return_bg") .setLogoWidth(70) .setLogoHeight(70) .setLogoHidden(false) .setNumberColor(0xff333333) .setLogBtnText("本机号码一键登录") .setLogBtnTextColor(0xffffffff) .setLogBtnImgPath("umcsdk_login_btn_bg") .setPrivacyNameAndUrlBeanList(List) .setPrivacyNameAndUrlBeanList(List) .setUncheckedImgPath("umcsdk_uncheck_image") .setCheckedImgPath("umcsdk_check_image") .setSloganTextColor(0xff999999) .setLogoOffsetY(50) .setLogoImgPath("logo_cm") .setNumFieldOffsetY(170) .setSloganOffsetY(230) .setLogBtnOffsetY(254) .setNumberSize(18) .setPrivacyState(false) .setNavTransparent(false) .addCustomView(mBtn, true, new JVerifyUIClickCallback() { @Override public void onClicked(Context context, View view) {Toast.makeText(context,"动态注册的其他按钮",Toast.LENGTH_SHORT).show();} }).addCustomView(mBtn2, false, new JVerifyUIClickCallback() { @Override public void onClicked(Context context, View view) {Toast.makeText(context,"动态注册的其他按钮 222",Toast.LENGTH_SHORT).show();} }).addNavControlView(navBtn, new JVerifyUIClickCallback() { @Override public void onClicked(Context context, View view) {Toast.makeText(context,"导航栏按钮点击",Toast.LENGTH_SHORT).show();} }).setPrivacyOffsetY(30).build(); JVerificationInterface.setCustomUIWithConfig(uiConfig);
              JVerifyUIConfig uiConfig = new JVerifyUIConfig.Builder().setAuthBGImgPath("main_bg")
                    .setNavColor(0xff0086d0)
                    .setNavText("登录")
                    .setNavTextColor(0xffffffff)
                    .setNavReturnImgPath("umcsdk_return_bg")
                    .setLogoWidth(70)
                    .setLogoHeight(70)
                    .setLogoHidden(false)
                    .setNumberColor(0xff333333)
                    .setLogBtnText("本机号码一键登录")
                    .setLogBtnTextColor(0xffffffff)
                    .setLogBtnImgPath("umcsdk_login_btn_bg")
                    .setPrivacyNameAndUrlBeanList(List<PrivacyBean>)
                    .setPrivacyNameAndUrlBeanList(List<PrivacyBean>)
                    .setUncheckedImgPath("umcsdk_uncheck_image")
                    .setCheckedImgPath("umcsdk_check_image")
                    .setSloganTextColor(0xff999999)
                    .setLogoOffsetY(50)
                    .setLogoImgPath("logo_cm")
                    .setNumFieldOffsetY(170)
                    .setSloganOffsetY(230)
                    .setLogBtnOffsetY(254)
                    .setNumberSize(18)
                    .setPrivacyState(false)
                    .setNavTransparent(false)
                    .addCustomView(mBtn, true, new JVerifyUIClickCallback() {
                        @Override
                        public void onClicked(Context context, View view) {Toast.makeText(context,"动态注册的其他按钮",Toast.LENGTH_SHORT).show();}
                    }).addCustomView(mBtn2, false, new JVerifyUIClickCallback() {
                        @Override
                        public void onClicked(Context context, View view) {Toast.makeText(context,"动态注册的其他按钮 222",Toast.LENGTH_SHORT).show();}
                    }).addNavControlView(navBtn, new JVerifyUIClickCallback() {
                        @Override
                        public void onClicked(Context context, View view) {Toast.makeText(context,"导航栏按钮点击",Toast.LENGTH_SHORT).show();}
                    }).setPrivacyOffsetY(30).build();
    JVerificationInterface.setCustomUIWithConfig(uiConfig);

        
此代码块在浮窗中显示

授权页面添加自定义控件

支持的版本

开始支持的版本 2.1.0

接口定义

  • addCustomView(View view, boolean finishFlag,JVerifyUIClickCallback callback)
    • 接口说明:
      • 在授权页面添加自定义控件
    • 参数说明:
      • view:开发者传入自定义的控件,开发者需要提前设置好控件的布局属性,SDK 只支持 RelativeLayout 布局
      • finishFlag:是否在授权页面通过自定义控件的点击 finish 授权页面
      • callback: 自定义控件的点击回调
    • 回调说明: onClicked(Context context, View view)
      • context:android 的上下文
      • view:自定义的控件的对象
    • 调用示例:
Button mBtn = new Button(this); mBtn.setText("其他方式登录"); RelativeLayout.LayoutParams mLayoutParams1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT); mLayoutParams1.setMargins(0, LoginUIHelper.dp2Pix(this,450.0f),0,0); mBtn.setLayoutParams(mLayoutParams1); new JVerifyUIConfig.Builder().addCustomView(mBtn, true, new JVerifyUIClickCallback() { @Override public void onClicked(Context context, View view) {Toast.makeText(context,"动态注册的其他按钮",Toast.LENGTH_SHORT).show();} });
                  Button mBtn = new Button(this);
        mBtn.setText("其他方式登录");
        RelativeLayout.LayoutParams mLayoutParams1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
        mLayoutParams1.setMargins(0, LoginUIHelper.dp2Pix(this,450.0f),0,0);
        mBtn.setLayoutParams(mLayoutParams1);
        new JVerifyUIConfig.Builder().addCustomView(mBtn, true, new JVerifyUIClickCallback() {
                        @Override
                        public void onClicked(Context context, View view) {Toast.makeText(context,"动态注册的其他按钮",Toast.LENGTH_SHORT).show();}
                    });

        
此代码块在浮窗中显示

授权页面导航栏添加自定义控件

支持的版本

开始支持的版本 2.3.2

接口定义

  • addNavControlView(View view, JVerifyUIClickCallback callback)
    • 接口说明:
      • 在授权页中顶部导航栏添加自定义控件
    • 参数说明:
      • view:开发者传入自定义的控件,开发者需要提前设置好控件的布局属性,SDK 只支持 RelativeLayout 布局
      • callback: 自定义控件的点击回调
    • 回调说明:
      • onClicked(Context context, View view)
        • context:android 的上下文
        • view:自定义的控件的对象
    • 调用示例:
Button navBtn = new Button(this); navBtn.setText("导航栏按钮"); RelativeLayout.LayoutParams navBtnParam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT); navBtnParam.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,RelativeLayout.TRUE); navBtn.setLayoutParams(navBtnParam); new JVerifyUIConfig.Builder().addNavControlView(navBtn, new JVerifyUIClickCallback() { @Override public void onClicked(Context context, View view) {Toast.makeText(context,"导航栏按钮点击",Toast.LENGTH_SHORT).show();} });
                  Button navBtn = new Button(this);
        navBtn.setText("导航栏按钮");
        RelativeLayout.LayoutParams navBtnParam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
        navBtnParam.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,RelativeLayout.TRUE);
        navBtn.setLayoutParams(navBtnParam);
        new JVerifyUIConfig.Builder().addNavControlView(navBtn, new JVerifyUIClickCallback() {
                        @Override
                        public void onClicked(Context context, View view) {Toast.makeText(context,"导航栏按钮点击",Toast.LENGTH_SHORT).show();}
                    });

        
此代码块在浮窗中显示

设置弹窗模式的授权页

支持的版本

开始支持的版本 2.3.8

接口定义

  • setDialogTheme(int dialogWidth, int dialogHeight, int offsetX, int offsetY, boolean isBottom)
    • 接口说明:
      • 设置授权页为弹窗模式
    • 参数说明:
      • dialogWidth: 窗口宽度,单位 dp
      • dialogHeight: 窗口高度,单位 dp
      • offsetX: 窗口相对屏幕中心的 x 轴偏移量,单位 dp
      • offsetY: 窗口相对屏幕中心的 y 轴偏移量,单位 dp
      • isBottom: 窗口是否居屏幕底部。设置后 offsetY 将失效
    • 调用示例:
new JVerifyUIConfig.Builder().setDialogTheme(410, 390, 0, 0, false)
              new JVerifyUIConfig.Builder().setDialogTheme(410, 390, 0, 0, false)

        
此代码块在浮窗中显示

窗口模式样式设置

在 manifest 中为授权页 activity 设置窗口样式 style

AndroidManifest.xml

android:screenOrientation="unspecified" android:launchMode="singleTop">
          <activity android:name="cn.jiguang.verifysdk.CtLoginActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:theme="@style/ActivityDialogStyle"   <!-- 设置自定义 style -->
            android:screenOrientation="unspecified"
            android:launchMode="singleTop">
</activity>

        
此代码块在浮窗中显示

style 中增加具体弹窗样式

res/values/styles.xml

          <style name="ActivityDialogStyle">
         <!-- 隐藏 action bar 和 title bar-->
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
        <!-- 背景透明 -->
        <item name="android:windowIsTranslucent">true</item>
        <!--dialog 圆角 -->
        <item name="android:windowBackground">@drawable/dialog_bg</item>
</style>

        
此代码块在浮窗中显示

定义窗口圆角属性

res/drawable/dialog_bg.xml

          <shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="5dp"/>
</shape>

        
此代码块在浮窗中显示

设置授权页横竖屏 UI

支持的版本

开始支持的版本 2.4.8

接口定义

  • setCustomUIWithConfig(JVerifyUIConfig uiConfigPortrait,JVerifyUIConfig uiConfigLandscape)
    • 接口说明:
      • 修改授权页面主题,支持传入竖屏和横屏两套 config。sdk 会根据当前横竖屏状态动态切换。需在每次调用 loginAuth 接口之前调用。
    • 参数说明:
      • uiConfigPortrait: 竖屏 config
      • uiConfigLandscape: 横屏 config
    • 调用示例:
JVerifyUIConfig portrait = configBuilder.setAuthBGImgPath("main_bg") .setNavColor(0xff0086d0) .setNavText("登录") .setNavTextColor(0xffffffff) .setNavReturnImgPath("umcsdk_return_bg") .setLogoWidth(70) .setLogoHeight(70) .setLogoHidden(false) .setNumberColor(0xff333333) .setLogBtnText("本机号码一键登录") .setLogBtnTextColor(0xffffffff) .setLogBtnImgPath("umcsdk_login_btn_bg") .setPrivacyNameAndUrlBeanList(List) .setAppPrivacyColor(0xff666666, 0xff0085d0) .setUncheckedImgPath("umcsdk_uncheck_image") .setCheckedImgPath("umcsdk_check_image") .setSloganTextColor(0xff999999) .setLogoOffsetY(50) .setLogoImgPath("logo_cm") .setNumFieldOffsetY(190) .setSloganOffsetY(220) .setLogBtnOffsetY(254) .setNumberSize(18) .setPrivacyState(false) .setNavTransparent(false) .build(); JVerifyUIConfig landscape = configBuilder .setAuthBGImgPath("main_bg") .setNavColor(0xff0086d0) .setNavText("登录") .setNavTextColor(0xffffffff) .setNavReturnImgPath("umcsdk_return_bg") .setLogoWidth(70) .setLogoHeight(70) .setLogoHidden(false) .setNumberColor(0xff333333) .setLogBtnText("本机号码一键登录") .setLogBtnTextColor(0xffffffff) .setLogBtnImgPath("umcsdk_login_btn_bg") .setPrivacyNameAndUrlBeanList(List) .setAppPrivacyColor(0xff666666, 0xff0085d0) .setUncheckedImgPath("umcsdk_uncheck_image") .setCheckedImgPath("umcsdk_check_image") .setSloganTextColor(0xff999999) .setLogoOffsetY(30) .setLogoImgPath("logo_cm") .setNumFieldOffsetY(150) .setSloganOffsetY(185) .setLogBtnOffsetY(210) .setPrivacyOffsetY(30) .build(); JVerificationInterface.setCustomUIWithConfig(portrait, landscape);
          
    JVerifyUIConfig portrait = configBuilder.setAuthBGImgPath("main_bg")
                        .setNavColor(0xff0086d0)
                        .setNavText("登录")
                        .setNavTextColor(0xffffffff)
                        .setNavReturnImgPath("umcsdk_return_bg")
                        .setLogoWidth(70)
                        .setLogoHeight(70)
                        .setLogoHidden(false)
                        .setNumberColor(0xff333333)
                        .setLogBtnText("本机号码一键登录")
                        .setLogBtnTextColor(0xffffffff)
                        .setLogBtnImgPath("umcsdk_login_btn_bg")
                        .setPrivacyNameAndUrlBeanList(List<PrivacyBean>)
                        .setAppPrivacyColor(0xff666666, 0xff0085d0)
                        .setUncheckedImgPath("umcsdk_uncheck_image")
                        .setCheckedImgPath("umcsdk_check_image")
                        .setSloganTextColor(0xff999999)
                        .setLogoOffsetY(50)
                        .setLogoImgPath("logo_cm")
                        .setNumFieldOffsetY(190)
                        .setSloganOffsetY(220)
                        .setLogBtnOffsetY(254)
                        .setNumberSize(18)
                        .setPrivacyState(false)
                        .setNavTransparent(false)
                        .build();

    JVerifyUIConfig landscape = configBuilder
                        .setAuthBGImgPath("main_bg")
                        .setNavColor(0xff0086d0)
                        .setNavText("登录")
                        .setNavTextColor(0xffffffff)
                        .setNavReturnImgPath("umcsdk_return_bg")
                        .setLogoWidth(70)
                        .setLogoHeight(70)
                        .setLogoHidden(false)
                        .setNumberColor(0xff333333)
                        .setLogBtnText("本机号码一键登录")
                        .setLogBtnTextColor(0xffffffff)
                        .setLogBtnImgPath("umcsdk_login_btn_bg")
                        .setPrivacyNameAndUrlBeanList(List<PrivacyBean>)
                        .setAppPrivacyColor(0xff666666, 0xff0085d0)
                        .setUncheckedImgPath("umcsdk_uncheck_image")
                        .setCheckedImgPath("umcsdk_check_image")
                        .setSloganTextColor(0xff999999)
                        .setLogoOffsetY(30)
                        .setLogoImgPath("logo_cm")
                        .setNumFieldOffsetY(150)
                        .setSloganOffsetY(185)
                        .setLogBtnOffsetY(210)
                        .setPrivacyOffsetY(30)
                        .build();
                        
    JVerificationInterface.setCustomUIWithConfig(portrait, landscape);

        
此代码块在浮窗中显示
  • 需要同时在 manifest 对应授权页 Activity:LoginAuthActivity、CtLoginActivity 中配置 android:configChanges="orientation|keyboardHidden|screenSize" 属性
  • targetSDKVersion > 26 的应用,在 8.0 系统上如果指定了授权页方向如:"android:screenOrientation="portrait"", 会报错 Only fullscreen opaque activities can request orientation
    • 解决方法:
      • 将授权页 "android:screenOrientation" 设置为 "portrait"、"landscape" 之外的值。
      • targetSDKVersion 改成 <= 26。

JVerifyUIConfig 配置元素说明

x 轴未设置偏移则所有组件默认横向居中

  • 设置授权页背景

    • 支持的版本 :2.1.1
    • 说明:图片会默认拉伸铺满整个屏幕,适配不同尺寸手机,建议使用 .9.png 图片来解决适配问题。
    方法 参数类型 说明
    setAuthBGImgPath String 设置背景图片
    setAuthBGGifPath String 设置本地 gif 背景图片,需要放置到 drawable 文件中,传入图片名称即可
    setAuthBGVideoPath String,String 设置背景 Video 文件。
    1.支持本地路径如:"android.resource://" + context.getPackageName() + "/" + R.raw.testvideo
    2.支持网络路径,https 开头的资源地址(建议下载到本地后使用本地路径,网络路径会出现卡顿等网络问题),设置默认第一频图片(需要放置到 drawable 文件中,传入图片名称即可,如果 Video 文件路径为本地,则可以填 null)
  • 状态栏

    方法 参数类型 说明
    setStatusBarColorWithNav boolean 设置状态栏与导航栏同色。仅在 android 5.0 以上设备生效。 since 2.4.1
    setStatusBarDarkMode boolean 设置状态栏暗色模式。仅在 android 6.0 以上设备生效。 since 2.4.8
    setStatusBarTransparent boolean 设置状态栏是否透明。仅在 android 4.4 以上设备生效。 since 2.4.8
    setStatusBarHidden boolean 设置状态栏是否隐藏。since 2.4.8
    setVirtualButtonTransparent boolean 设置虚拟按键栏背景是否透明。since 2.5.2
  • 授权页导航栏

    方法 参数类型 说明
    setNavColor int 设置导航栏颜色
    setNavText String 设置导航栏标题文字
    setNavTextColor int 设置导航栏标题文字颜色
    setNavReturnImgPath String 设置导航栏返回按钮图标
    setNavTransparent boolean 设置导航栏背景是否透明。默认不透明。since 2.3.2
    setNavTextSize int 设置导航栏标题文字字体大小(单位:sp)。since 2.4.1
    setNavReturnBtnHidden boolean 设置导航栏返回按钮是否隐藏。默认不隐藏。since 2.4.1
    setNavReturnBtnWidth int 设置导航栏返回按钮宽度。since 2.4.8
    setNavReturnBtnHeight int 设置导航栏返回按钮高度。since 2.4.8
    setNavReturnBtnOffsetX int 设置导航栏返回按钮距屏幕左侧偏移。since 2.4.8
    setNavReturnBtnRightOffsetX int 设置导航栏返回按钮距屏幕右侧偏移。since 2.4.8
    setNavReturnBtnOffsetY int 设置导航栏返回按钮距上端偏移。since 2.4.8
    setNavHidden boolean 设置导航栏是否隐藏。since 2.4.8
    setNavTextBold boolean 设置导航栏标题字体是否加粗。since 2.5.4
  • 授权页 logo

    方法 参数类型 说明
    setLogoWidth int 设置 logo 宽度(单位:dp)
    setLogoHeight int 设置 logo 高度(单位:dp)
    setLogoHidden boolean 隐藏 logo
    setLogoOffsetY int 设置 logo 相对于标题栏下边缘 y 偏移
    setLogoImgPath String 设置 logo 图片
    setLogoOffsetX int 设置 logo 相对于屏幕左边 x 轴偏移。since 2.3.8
    setLogoOffsetBottomY int 设置 logo 相对于屏幕底部 y 轴偏移。since 2.4.8
  • 授权页号码栏

    方法 参数类型 说明
    setNumberColor int 设置手机号码字体颜色
    setNumberSize Number 设置手机号码字体大小(单位:sp)。since 2.3.2
    setNumFieldOffsetY int 设置号码栏相对于标题栏下边缘 y 偏移
    setNumFieldOffsetX int 设置号码栏相对于屏幕左边 x 轴偏移。since 2.3.8
    setNumberFieldOffsetBottomY int 设置号码栏相对于屏幕底部 y 轴偏移。since 2.4.8
    setNumberFieldWidth int 设置号码栏宽度。since 2.4.8
    setNumberFieldHeight int 设置号码栏高度。since 2.4.8
    setNumberTextBold boolean 设置手机号码字体是否加粗。since 2.5.4
  • 授权页登录按钮

    方法 参数类型 说明
    setLogBtnText String 设置登录按钮文字
    setLogBtnTextColor int 设置登录按钮文字颜色
    setLogBtnImgPath String 设置授权登录按钮图片
    setLogBtnOffsetY int 设置登录按钮相对于标题栏下边缘 y 偏移
    setLogBtnOffsetX int 设置登录按钮相对于屏幕左边 x 轴偏移。since 2.3.8
    setLogBtnWidth int 设置登录按钮宽度。since 2.3.8
    setLogBtnHeight int 设置登录按钮高度。since 2.3.8
    setLogBtnTextSize int 设置登录按钮字体大小。since 2.3.8
    setLogBtnBottomOffsetY int 设置登录按钮相对屏幕底部 y 轴偏移。since 2.4.8
    setLogBtnTextBold boolean 设置登录按钮字体是否加粗。since 2.5.4
  • 授权页隐私栏

    方法 参数类型 说明
    setAppPrivacyOne String,String 自定义隐私条款一;参数 1 为:设置开发者隐私条款名称;参数 2 为:开发者隐私条款 URL;since 2.3.8-2.7.2,2.7.3 及之后版本设置无效
    setAppPrivacyTwo String,String 自定义隐私条款二;参数 1 为:设置开发者隐私条款名称;参数 2 为:开发者隐私条款 URL;since 2.3.8-2.7.2, 2.7.3 及之后版本设置无效
    setAppPrivacyColor int,int 设置隐私条款名称颜色(基础文字颜色,协议文字颜色)
    setprivacyMarginL int 设置协议相对于授权页左边的间距。since 2.9.6
    setprivacyMarginR int 设置协议相对于授权页右边的间距。since 2.9.6
    setprivacyMarginT int 设置协议相对于授权页顶部的间距。since 2.9.6
    setprivacyMarginB int 设置协议相对于授权页底部的间距。since 2.9.6
    setCheckedImgPath String 设置复选框选中时图片
    setUncheckedImgPath String 设置复选框未选中时图片
    setPrivacyState boolean 设置隐私条款默认选中状态,默认不选中。since 2.3.2
    setPrivacyOffsetY int 设置隐私条款相对于授权页面底部下边缘 y 偏移,即将废弃。
    setPrivacyOffsetX int 设置隐私条款 (或者 checkbox 显示的时候) 相对于屏幕两边的间隔 。since 2.7.2,即将废弃。
    setPrivacyTextCenterGravity boolean 设置隐私条款文字是否居中对齐(默认左对齐)。since 2.3.8
    setPrivacyText String,String,String,String 设置隐私条款名称外的文字。
    如:登录即同意... 和...、... 并使用本机号码登录;参数 1 为:"登录即同意"。参数 2 为:"和"。参数 3 为:"、"。参数 4 为:"并使用本机号码登录"。
    since 2.3.8-2.7.2,2.7.3 及之后版本设置无效
    setPrivacyText String,String 设置隐私条款名称外的文字。
    如:登录即同意...... 并使用本机号码登录;参数 1 为:"登录即同意"。参数 2 为:"并使用本机号码登录"。
    since 2.7.3
    setPrivacyTextSize int 设置隐私条款文字字体大小(单位:sp)。since 2.4.1
    setPrivacyTopOffsetY int 设置隐私条款相对导航栏下端 y 轴偏移。since 2.4.8
    setPrivacyCheckboxHidden boolean 设置隐私条款 checkbox 是否隐藏。since 2.4.8
    setPrivacyCheckboxSize int 设置隐私条款 checkbox 尺寸。since 2.4.8
    setPrivacyWithBookTitleMark boolean 设置隐私条款运营商协议名是否加书名号。since 2.4.8
    setPrivacyCheckboxInCenter boolean 设置隐私条款 checkbox 是否相对协议文字纵向居中。默认居顶。since 2.4.8
    setPrivacyTextWidth int 弃用 since 2.7.2
    enableHintToast boolean Toast 协议栏 checkbox 未选中时,点击登录按钮是否弹出 toast 提示用户勾选协议,默认不弹。支持自定义 Toast。since 2.5.0
    enablePrivacyCheckDialog boolean 支持设置未勾选隐私时打开弹窗;当设置 enablePrivacyCheckDialog 为 true 时,enableHintToast 也要同时设为 true。since 2.9.0
    setPrivacyTextBold boolean 设置隐私条款文字字体是否加粗。since 2.5.4
    setPrivacyUnderlineText boolean 设置隐私条款文字字体是否加下划线。since 2.5.4
    setVirtualButtonColor int 设置授权界面底部虚拟导航栏背景。 since 2.7.3
    setPrivacyNameAndUrlBeanList(List) PrivacyBean(String name, String url, String separator) PrivacyBean 传参;参数 1 为:设置开发者隐私条款名称;参数 2 为:开发者隐私条款 URL;参数 3 为:连接符号。 since 2.7.4
  • 授权页隐私协议 web 页面

    方法 参数类型 说明
    setIsPrivacyViewDarkMode boolean 设置协议展示 web 页面是否适配暗黑模式。since 2.9.6
    true:跟随系统。
    false:不支持暗黑模式
    setPrivacyNavColor int 设置协议展示 web 页面导航栏背景颜色。since 2.4.8
    setPrivacyNavTitleTextColor int 设置协议展示 web 页面导航栏标题文字颜色。since 2.4.8
    setPrivacyNavTitleTextSize int 设置协议展示 web 页面导航栏标题文字大小(sp)。since 2.4.8
    setPrivacyNavReturnBtn View 设置协议展示 web 页面导航栏返回按钮图标。since 2.4.8
    setAppPrivacyNavTitle1 String 设置自定义协议 1 对应 web 页面导航栏文字内容。since 2.5.2
    setAppPrivacyNavTitle2 String 设置自定义协议 2 对应 web 页面导航栏文字内容。since 2.5.2
    setPrivacyStatusBarColorWithNav boolean 设置授权协议 web 页面状态栏与导航栏同色。仅在 android 5.0 以上设备生效。since 2.5.2
    setPrivacyStatusBarDarkMode boolean 设置授权协议 web 页面状态栏暗色模式。仅在 android 6.0 以上设备生效。since 2.5.2
    setPrivacyStatusBarTransparent boolean 设置授权协议 web 页面状态栏是否透明。仅在 android 4.4 以上设备生效。since 2.5.2
    setPrivacyStatusBarHidden boolean 设置授权协议 web 页面状态栏是否隐藏。since 2.5.2
    setPrivacyVirtualButtonTransparent boolean 设置授权协议 web 页面虚拟按键栏背景是否透明。since 2.5.2
    setVirtualButtonHidden boolean 支持隐藏底部虚拟按键。since 2.9.0
    setPrivacyNavTitleTextBold boolean 设置协议展示 web 页面导航栏字体是否加粗。since 2.5.4
    setPrivacyVirtualButtonColor int 设置隐私界面底部虚拟导航栏背景 since 2.7.3
  • 授权页 slogan

    方法 参数类型 说明
    setSloganTextColor int 设置移动 slogan 文字颜色
    setSloganOffsetY int 设置 slogan 相对于标题栏下边缘 y 偏移
    setSloganOffsetX int 设置 slogan 相对于屏幕左边 x 轴偏移。since 2.3.8
    setSloganBottomOffsetY int 设置 slogan 相对于屏幕底部下边缘 y 轴偏移。since 2.3.8
    setSloganTextSize int 设置 slogan 字体大小。since 2.4.8
    setSloganTextBold boolean 设置 slogan 字体是否加粗。since 2.5.4
  • 自定义 loading view

    方法 参数类型 说明
    setLoadingView View,Animation 设置 login 过程中展示的 loading view 以及动画效果。since 2.4.8
  • 授权页动画

    方法 参数类型 说明
    setNeedStartAnim boolean 设置拉起授权页时是否需要显示默认动画。默认展示。since 2.5.2
    setNeedCloseAnim boolean 设置关闭授权页时是否需要显示默认动画。默认展示。since 2.5.2
  • 开发者自定义控件

    方法 参数类型 说明
    addCustomView 见以上方法定义 在授权页空白处添加自定义控件以及点击监听
    addNavControlView 见以上方法定义 在授权页面顶部导航栏添加自定义控件以及点击监听

拉起授权页面(旧)

支持的版本

开始支持的版本 2.3.0

接口的定义

  • JVerificationInterface.loginAuth(final Context context, boolean autoFinish, final VerifyListener listener)
    • 接口说明:
      • 调起一键登录授权页面,在用户授权后获取 loginToken
    • 参数说明:
      • context:android 的上下文
      • boolean:是否自动关闭授权页,true - 是,false - 否;若此字段设置为 false,请在收到一键登录回调后调用 SDK 提供的关闭授权页面方法。
      • listener:接口回调
    • 回调说明:
      onResult(int code, String  content, String operator)
      • code: 返回码,6000 代表 loginToken 获取成功,6001 代表 loginToken 获取失败,其他返回码详见描述
      • content:返回码的解释信息,若获取成功,内容信息代表 loginToken。
      • operator:成功时为对应运营商,CM 代表中国移动,CU 代表中国联通,CT 代表中国电信。失败时可能为 null
    • 调用示例:
JVerificationInterface.loginAuth(this, false, new VerifyListener() { @Override public void onResult(int code, String content, String operator) { if (code == 6000){ Log.d(TAG, "code=" + code + ", token=" + content+" ,operator="+operator); }else{ Log.d(TAG, "code=" + code + ", message=" + content); } } });
              JVerificationInterface.loginAuth(this, false, new VerifyListener() {
         @Override
              public void onResult(int code, String content, String operator) {
                 if (code == 6000){
                    Log.d(TAG, "code=" + code + ", token=" + content+" ,operator="+operator);
                }else{
                    Log.d(TAG, "code=" + code + ", message=" + content);
                }
              }
          });

        
此代码块在浮窗中显示

拉起授权页面(旧)

支持的版本

开始支持的版本 2.0.0

接口的定义

  • JVerificationInterface.loginAuth(final Context context, final VerifyListener listener)
    • 接口说明:
      • 调起一键登录授权页面,在用户授权后获取 loginToken
    • 参数说明:
      • context:android 的上下文
      • listener:接口回调
    • 回调说明:
      onResult(int code, String  content, String operator)
      • code: 返回码,6000 代表 loginToken 获取成功,6001 代表 loginToken 获取失败,其他返回码详见描述
      • content:返回码的解释信息,若获取成功,内容信息代表 loginToken。
      • operator:成功时为对应运营商,CM 代表中国移动,CU 代表中国联通,CT 代表中国电信。失败时可能为 null
      • 调用示例:
JVerificationInterface.loginAuth(this, new VerifyListener() { @Override public void onResult(int code, String content, String operator) { if (code == 6000){ Log.d(TAG, "code=" + code + ", token=" + content+" ,operator="+operator); }else{ Log.d(TAG, "code=" + code + ", message=" + content); } } });
              JVerificationInterface.loginAuth(this, new VerifyListener() {
         @Override
              public void onResult(int code, String content, String operator) {
                 if (code == 6000){
                    Log.d(TAG, "code=" + code + ", token=" + content+" ,operator="+operator);
                }else{
                    Log.d(TAG, "code=" + code + ", message=" + content);
                }
              }
          });

        
此代码块在浮窗中显示

号码认证

初始化

调用 SDK 其他流程方法前,请确保已调用过初始化,否则会返回未初始化,详情参考 SDK 初始化 API(会采集信息,建议放到同意协议后调用)。

判断网络环境是否支持

判断当前的手机网络环境是否可以使用号码认证,若网络支持,再调用号码认证 API,否则请调用其他认证方式的 API,详情参考 判断网络环境是否支持 API

获取号码认证 token(新)

支持的版本

开始支持的版本 2.2.0

接口定义

  • JVerificationInterface.getToken(Context context,int timeOut, VerifyListener listener)
    • 接口说明:
      • 在预定时间内获取当前在线的 sim 卡所在运营商及 token,如果超过所设时间,接口回调返回超时。如果获取成功代表可以用来验证手机号,获取失败则建议做短信验证。
    • 参数说明:
      • context:android 的上下文
      • timeOut: 超时时间(毫秒), 有效取值范围(0,10000], 若小于等于 0 则取默认值 5000. 大于 10000 则取 10000. 为保证获取 token 的成功率,建议设置为 3000-5000ms.
      • listener:接口回调
    • 回调说明:
      onResult(int code, String  content, String operator)
      • code: 返回码,2000 代表获取成功,其他为失败,详见错误码描述
      • content:成功时为 token,可用于调用验证手机号接口。token 有效期为 1 分钟,超过时效需要重新获取才能使用。失败时为失败信息
      • operator:成功时为对应运营商,CM 代表中国移动,CU 代表中国联通,CT 代表中国电信。失败时可能为 null
    • 调用示例:
JVerificationInterface.getToken(this, 5000,new VerifyListner{ @Override public void onResult(int code, String content, String operator) {if (code == 2000){Log.d(TAG, "token=" + content + ", operator=" + operator); } else {Log.d(TAG, "code=" + code + ", message=" + content); } });
              JVerificationInterface.getToken(this, 5000,new VerifyListner{
        @Override
        public void onResult(int code, String content, String operator) {if (code == 2000){Log.d(TAG, "token=" + content + ", operator=" + operator);
            } else {Log.d(TAG, "code=" + code + ", message=" + content);
            }
        });

        
此代码块在浮窗中显示

说明:开发者可以通过 SDK 获取 token 接口的回调信息来选择验证方式,若成功获取到 token 则可以继续使用极光认证进行号码验证;若获取 token 失败,需要换用短信验证码等方式继续完成验证。

获取号码认证 token(旧)

支持的版本

开始支持的版本 1.0.0

接口定义

  • JVerificationInterface.getToken(Context context, VerifyListener listener)
    • 接口说明:
      • 获取当前在线的 sim 卡所在运营商及 token。如果获取成功代表可以用来验证手机号,获取失败则建议做短信验证。默认超时时长为 5000ms,此接口已废弃,建议使用新接口。
    • 参数说明:
      • context:android的上下文
      • listener:接口回调
    • 回调说明:
      onResult(int code, String  content, String operator)
      • code: 返回码,2000 代表获取成功,其他为失败,详见错误码描述
      • content:成功时为 token,可用于调用验证手机号接口。token 有效期为 1 分钟,超过时效需要重新获取才能使用。失败时为失败信息
      • operator:成功时为对应运营商,CM 代表中国移动,CU 代表中国联通,CT 代表中国电信。失败时可能为 null
    • 调用示例:
JVerificationInterface.getToken(this, new VerifyListner{ @Override public void onResult(int code, String content, String operator) { if (code == 2000){ Log.d(TAG, "token=" + content + ", operator=" + operator); } else { Log.d(TAG, "code=" + code + ", message=" + content); } });
              JVerificationInterface.getToken(this, new VerifyListner{
        @Override
        public void onResult(int code, String content, String operator) {
            if (code == 2000){
                Log.d(TAG, "token=" + content + ", operator=" + operator);
            } else {
                Log.d(TAG, "code=" + code + ", message=" + content);
            }
        });

        
此代码块在浮窗中显示

SDK 发起号码认证

2.4.3 版本开始,此接口已移除

支持的版本

开始支持的版本 1.0.0

接口定义

  • JVerificationInterface.verifyNumber(Context context, String token, String phone, VerifyListener listener)
    • 接口说明:
      • 验证手机号是否是当前在线的 sim 卡的手机号
    • 参数说明:
      • context:android 的上下文
      • token:选填,getToken 接口返回的 token。如果传空,将自动调用 getToken 方法再执行手机号验证
      • phone:必填,需要验证的手机号。如果传空会报 4001 参数错误
      • listener:接口回调
    • 回调说明:
      onResult(int code, String  content, String operator)
      • code: 返回码,1000 代表验证一致,1001 代表验证不一致,其他为失败,详见错误码描述
      • content:返回码的解释信息
      • operator:成功时为对应运营商,CM 代表中国移动,CU 代表中国联通,CT 代表中国电信。失败时可能为 null
    • 调用示例:
JVerificationInterface.verifyNumber(this, null, "13512341234", new VerifyListner{ @Override public void onResult(int code, String content, String operator) { if (code == 1000){ Log.d(TAG, "verify consistent, operator=" + operator); } else if (code == 1001) { Log.d(TAG, "verify not consistent"); } else { Log.d(TAG, "code=" + code + ", message=" + content); } });
              JVerificationInterface.verifyNumber(this, null, "13512341234", new VerifyListner{
        @Override
        public void onResult(int code, String content, String operator) {
            if (code == 1000){
                Log.d(TAG, "verify consistent, operator=" + operator);
            } else if (code == 1001) {
                Log.d(TAG, "verify not consistent");
            } else {
                Log.d(TAG, "code=" + code + ", message=" + content);
            }
        });

        
此代码块在浮窗中显示

说明:开发者调用该接口,需要在管理控制台找到该应用,并在[认证设置]-[其他设置]中开启[SDK发起认证],建议从开发者服务端发起号码认证。

验证码

SDK 获取验证码

支持的版本

开始支持的版本 2.6.0

接口定义

  • JVerificationInterface.getSmsCode(Context context, String phonenum, String signid, String tempid, RequestCallback listener)
    • 接口说明:
      • 获取短信验证码,使用此功能需要在 Portal 控制台中极光短信模块添加短信签名和验证码短信模版,或者使用默认的签名或模版。详见:操作指南
      • 通过此接口获得到短信验证码后,需要调用极光验证码验证 API 来进行验证,详见:验证码验证 API
    • 参数说明:
      • context:android 的上下文
      • phonenum:电话号码
      • signid:短信签名 id,如果为 null,则为默认短信签名 id
      • tempid:短信模板 id,如果为 null,则为默认短信模板 id
      • listener:回调接口
    • 回调说明:
      • onResult(int code, String msg)
        • code: 返回码,3000 代表获取验证码成功,msg 为此次获取的唯一标识码(uuid),其他为失败,详见错误码描述
        • msg:结果描述
    • 调用示例:
String phonenum = "159xxxxxxxx"; String sign_id = null; String temp_id = null; JVerificationInterface.getSmsCode(this, phonenum, sign_id, temp_id, new RequestCallback() { @Override public void onResult(final int code, final String result) {if (code == 3000) {tvLog.post(new Runnable() { @Override public void run() { String text = "uuid:" + result; Log.d(TAG, "getCodeSuccess:" + text); tvLog.setText(text); } });} else {tvLog.post(new Runnable() { @Override public void run() { String text = "errCode:" + code + ",errmsg:" + result; Log.d(TAG, "getCodeFail:" + text); tvLog.setText(text); } });} } });
                  String phonenum = "159xxxxxxxx";
        String sign_id = null;
        String temp_id = null;
        JVerificationInterface.getSmsCode(this, phonenum, sign_id, temp_id, new RequestCallback<String>() {
            @Override
            public void onResult(final int code, final String result) {if (code == 3000) {tvLog.post(new Runnable() {
                        @Override
                        public void run() {
                            String text = "uuid:" + result;
                            Log.d(TAG, "getCodeSuccess:" + text);
                            tvLog.setText(text);
                        }
                    });} else {tvLog.post(new Runnable() {
                        @Override
                        public void run() {
                            String text = "errCode:" + code + ",errmsg:" + result;
                            Log.d(TAG, "getCodeFail:" + text);
                            tvLog.setText(text);
                        }
                    });}


            }
        });

        
此代码块在浮窗中显示

设置前后两次获取验证码的时间间隔

支持的版本

开始支持的版本 2.6.0

接口定义

  • JVerificationInterface.setSmsIntervalTime(long intervalTime)
    • 接口说明:
      • 设置前后两次获取验证码的时间间隔,默认 30000ms,有效范围(0,300000)
    • 参数说明:
      • intervalTime:时间间隔,单位是毫秒(ms)。
    • 调用示例:
JVerificationInterface.setSmsIntervalTime(60000);// 设置间隔时间为 60 秒
                  JVerificationInterface.setSmsIntervalTime(60000);// 设置间隔时间为 60 秒

        
此代码块在浮窗中显示

行为验证

支持的版本

开始支持的版本 2.9.2,请先完成 行为验证的集成

功能说明

方法 参数类型 说明
initCaptcha Activity, JGCaptchaConfig 行为验证初始化。可以通过 JGCaptchaConfig 设置一些参数。需要在认证初始化成功之后才能调用。也就是要在 JVerificationInterface.init 返回 8000 的时候才能调用 initCaptcha
verifyCaptcha OnJGSuccessListener, OnJGFailureListener 执行行为验证。检测成功时回调 OnJGSuccessListener,检测失败回调 OnJGFailureListener。
destroy 不需要参数 行为验证销毁生命周期长的资源。销毁初始化传入的 Activity 实例,以免内存泄露

行为验证初始化

调用示例

JGCaptchaConfig jgCaptchaConfig = new JGCaptchaConfig.Builder().setDebug(BuildConfig.DEBUG) .setLanguage("zh") .setParams(params) .setTimeOut(10000) .build(); boolean initSuccess=JVerificationInterface.initCaptcha(this, jgCaptchaConfig); // 返回 true 的时候表示初始化成功
              JGCaptchaConfig jgCaptchaConfig = new JGCaptchaConfig.Builder().setDebug(BuildConfig.DEBUG)
                    .setLanguage("zh")
                    .setParams(params)
                    .setTimeOut(10000)
                    .build();
    boolean initSuccess=JVerificationInterface.initCaptcha(this, jgCaptchaConfig);                
    // 返回 true 的时候表示初始化成功

        
此代码块在浮窗中显示

JGCaptchaConfig.Builder 类配置参数说明

定义 说明
setParams 额外的参数,会被会传递到前端 js 中使用
setDebug 是否 debug 模式,默认 false ,线上请置为 false
setLanguage 指定语言,默认跟随应用语言
setCanceledOnTouchOutside 点击区域外是否消失,默认 true
setTimeOut 设置超时,单位 ms ,默认 10000
setResourcePath 设置中间地址,默认加载本地 html 文件
setBackgroundColor 设置背景颜色,默认透明
build 构建 JGCaptchaConfig 对象

setParams 配置参数说明

功能 参数 说明
当前主题样式 displayMode 整型,0:跟随系统,1:普通,2:暗黑。默认为 0
验证展示位置 displayArea 字符串, center :居中,默认为 center
协议 protocol 字符串, https:// 或者 http:// ,默认 https://
验证窗口向下偏移大小 barHeight 整型,单位:逻辑像素,如 14,默认不配置
H5 蒙层背景色 bgColor 字符串,遵循 css 规则,如 #000000ff ,默认不配置
自定义 loading loading 字符串,本地加载中间页 loading 相对路径,如./loading.gif 。注意:若远程加载不传此字段,默认不配置

执行行为验证

  • 请在行为验证初始化成功的时候再来调用 verifyCaptcha
  • 调用示例:
JVerificationInterface.verifyCaptcha(new OnJGSuccessListener() { @Override public void onSuccess(boolean status, String response) {Log.d(TAG, "verifyCaptcha onSuccess status=" + status + "response=" + response); } }, new OnJGFailureListener() { @Override public void onFailure(String err) {Log.d(TAG, "verifyCaptcha onFailure err=" + err); } });
              JVerificationInterface.verifyCaptcha(new OnJGSuccessListener() {
                        @Override
                        public void onSuccess(boolean status, String response) {Log.d(TAG, "verifyCaptcha onSuccess status=" + status + "response=" + response);
                  
                        }
                    }, new OnJGFailureListener() {
                        @Override
                        public void onFailure(String err) {Log.d(TAG, "verifyCaptcha onFailure err=" + err);
                        }
                    });

        
此代码块在浮窗中显示
文档内容是否对您有帮助?

Copyright 2011-2022, jiguang.cn, All Rights Reserved. 粤ICP备12056275号-13 深圳市和讯华谷信息技术有限公司

在文档中心打开