写点什么

秒验丨 Android 端 SDK API 使用说明

  • 2022 年 8 月 18 日
    上海
  • 本文字数:4799 字

    阅读完需:约 16 分钟

概述

秒验提供预登录、登录、两种自定义 UI 等 API 接口供开发者调用。

预登录(preVerify)

/** * com.mob.secverify.SecVerify.class * 检测当前用户的手机网络环境是否符合条件,获取用于一键登录使用的临时凭证, 默认有效期为1个小时 * @param callback     回调 */  public static void preVerify(PreVerifyCallback callback)
复制代码


示例代码:


// 建议提前调用预登录接口,可以加快免密登录过程,提高用户的体验。SecVerify.preVerify(new PreVerifyCallback() {    @Override    public void onComplete(Void data) {        // TODO处理成功的结果    }    @Override    public void onFailure(VerifyException e) {        // TODO处理失败的结果        // 获取错误码        int errCode = e.getCode();        //获取SDK返回的错误信息        String errMsg = e.getMessage();           // 更详细的网络错误信息可以通过t查看,注:t有可能为null,也可用于获取运营商返回的错误信息        Throwable t = e.getCause();        String errDetail = null;        if (t != null) {            errDetail = t.getMessage();        }    }});
复制代码

登录(verify)

/** * com.mob.secverify.SecVerify.class * 调用一键登录方法将立即拉起授权页面 * @param callback     回调 */  public static void verify(VerifyCallback callback)
复制代码


示例代码:


SecVerify.verify(new VerifyCallback() {    @Override    public void onOtherLogin() {        // 用户点击“其他登录方式”,处理自己的逻辑    }    @Override    public void onUserCanceled() {        // 用户点击“关闭按钮”或“物理返回键”取消登录,处理自己的逻辑    }    @Override    public void onComplete(VerifyResult data) {        // 获取授权码成功,将token信息传给应用服务端,再由应用服务端进行登录验证,此功能需由开发者自行实现        // opToken        String opToken = verifyResult.getOpToken();           // token        String token = verifyResult.getToken();           // 运营商类型,[CMCC:中国移动,CUCC:中国联通,CTCC:中国电信]        String operator = verifyResult.getOperator();       }    @Override    public void onFailure(VerifyException e) {        //TODO处理失败的结果    }});
复制代码

登录接口重载方法(verify)

/** * com.mob.secverify.SecVerify.class * 调用一键登录方法将立即拉起授权页面 * @param pageCallback     回调 * @param getTokenCallback     回调 */  public static void verify(PageCallback pageCallback, GetTokenCallback getTokenCallback)
复制代码


示例代码:


SecVerify.verify(    new PageCallback() {        @Override        public void pageCallback(int code, String desc) {            // 授权页面相关回调及错误码,无法打开运营商的授权页面的错误会在这里回调        }
}, new GetTokenCallback() { @Override public void onComplete(VerifyResult verifyResult) { // TODO获取授权码成功,将token信息传给应用服务端,再由应用服务端进行登录验证,此功能需由开发者自行实现 // 运营商token String opToken = verifyResult.getOpToken(); // 服务器token String token = verifyResult.getToken(); // 运营商类型,[CMCC:中国移动,CUCC:中国联通,CTCC:中国电信] String operator = verifyResult.getOperator(); } @Override public void onFailure(VerifyException e) { // TODO处理失败的结果 } });
复制代码

关闭自带 loading(dismissProgressDialog)

//com.mob.secverify.ui.component.CommonProgressDialog.class/** *  关闭自带loading */  public static void dismissProgressDialog()
复制代码


示例代码:


CommonProgressDialog.dismissProgressDialog();
复制代码

设置自定义的 LoadingView(setCustomizeLoadingView)

/** * com.mob.secverify.ui.CustomUIRegister.class * 设置自定义的loading view * @param loadingView    自定义的loadingView */  public static void setCustomizeLoadingView(View loadingView)
复制代码


示例代码:


当传入的为空白 view 时相当于隐藏 loading


CustomUIRegister.setCustomizeLoadingView(new View(this));
复制代码

设置 debug 模式(setDebugMode)

SecVerify 提供了以下方法用于设置 debug 模式:


/** * com.mob.secverify.SecVerify.class * 设置debug模式 * @param isDebug     是否设置debug模式 */  public static void setDebugMode(boolean isDebug)
复制代码


示例代码:

SecVerify.setDebugMode(true);
复制代码

超时设置(setTimeOut)

SecVerify 提供了以下方法用于设置超时时间,单位为 ms,取值在 1000-10000 之间:


/** * com.mob.secverify.SecVerify.class * 超时设置 * @param time     超时时间 */  public static void setTimeOut(int time)
复制代码


示例代码:

SecVerify.setTimeOut(time);
复制代码

主动关闭授权页面(finishOAuthPage)

SecVerify 提供了以下方法用于由开发者主动关闭授权页面


/** * com.mob.secverify.SecVerify.class * 主动关闭授权页面 */  public static void finishOAuthPage()
复制代码


关于该方法,作以下说明:


登录 接口默认在触发回调时,SDK 内部会自动关闭授权页,开发者不需要再次调用上述方法进行关闭操作开发者添加的 * 自定义控件 点击时默认不关闭授权页,如需关闭,可以使用该方法通过该方法主动关闭授权页时,不会触发 * 登录 接口的任何回调


示例代码:

SecVerify.finishOAuthPage();

SecVerify.autoFinishOAuthPage(isFinish);
复制代码

设置是否自动关闭授权页面(autoFinishOAuthPage)

SecVerify 提供了以下方法用于由开发者决定登录成功或失败是否自动关闭授权页面:


/** * com.mob.secverify.SecVerify.class * 是否自动关闭授权页面 * @param isFinish     是否自动关闭授权页面 */  public static void autoFinishOAuthPage(boolean  isFinish)
复制代码


示例代码:SecVerify.autoFinishOAuthPage(isFinish);


或者


/** * com.mob.secverify.SecVerify.class * 是否自动关闭授权页面 * @param isFinish     是否自动关闭授权页面 */  public static void otherLoginAutoFinishOAuthPage(boolean isFinish)
复制代码


示例代码:


SecVerify.otherLoginAutoFinishOAuthPage(isFinish);
复制代码


关于以上方法,作以下说明:


  • 如果未设置或设置为 true,默认会自动关闭授权页面

  • autoFinishOAuthPage 方法如果设置为 false,那么在登录成功或者失败的回调中,不会自动关闭授权页面,必须要手动调用 SecVerify.finishOAuthPage();方法来关闭授权页面

  • otherLoginAutoFinishOAuthPage 方法如果设置为 false,那么在其他方式登录的回调中,不会自动关闭授权页面,必须要手动调用 SecVerify.finishOAuthPage();方法来关闭授权页面

获取授权页面 activity(3.3.1 版本新增)

3.3.1 版本新增获取授权页 activity


/*** 获取授权页面activity* @return  授权页面未拉起或者已经关闭,返回null; 拉起状态下返回对应运营商授权页面activity*/public static Activity getAuthPageActivity()
复制代码


示例代码


SecVerify.getAuthPageActivity();
复制代码

关闭授权页面旋转(3.3.1 版本新增)

3.3.1 版本新增关闭授权页旋转方法


/*** 关闭授权页面旋转* 默认关闭* @param isClosed  true:关闭屏幕旋转角度监听响应; false:打开屏幕旋转角度监听响应*/public static void closeOrientationDetector(boolean isClosed)
复制代码


代码示例


SecVerify.closeOrientationDetector(true);
复制代码

刷新授权页面(refreshOAuthPage)

SecVerify 提供了以下方法用于刷新授权页面:


/** * com.mob.secverify.SecVerify.class * 刷新授权页面 */  public static void refreshOAuthPage()
复制代码


示例代码:


SecVerify.refreshOAuthPage()
复制代码


关于该方法,作以下说明:


  • 如果需要在授权页面修改界面内容,可以通过设置 ui 属性的 hidden 方法来隐藏界面控件并用自定义控件设置自己的 UI

  • 获取授权页面的其他回调

  • SecVerify 提供了以下方法用于获取授权页面的其他回调,此方法需放在调用 verify 方法之前


SecVerify.OtherOAuthPageCallBack(new OAuthPageEventCallback() {            @Override            public void initCallback(OAuthPageEventResultCallback cb) {                cb.pageOpenCallback(new OAuthPageEventCallback.PageOpenedCallback() {                    @Override                    public void handle() {                        // 授权页面打开回调                    }                });                cb.loginBtnClickedCallback(new OAuthPageEventCallback.LoginBtnClickedCallback() {                    @Override                    public void handle() {                        // 点击登录按钮回调                    }                });                cb.agreementPageClosedCallback(new OAuthPageEventCallback.AgreementPageClosedCallback() {                    @Override                    public void handle() {                        // 隐私协议页面关闭回调                    }                });                cb.agreementPageOpenedCallback(new OAuthPageEventCallback.AgreementClickedCallback() {                    @Override                    public void handle() {                        // 点击运营商隐私协议回调                    }                });                cb.cusAgreement1ClickedCallback(new OAuthPageEventCallback.CusAgreement1ClickedCallback() {                    @Override                    public void handle() {                        // 点击自定义隐私协议1回调                    }                });                cb.cusAgreement2ClickedCallback(new OAuthPageEventCallback.CusAgreement2ClickedCallback() {                    @Override                    public void handle() {                        // 点击自定义隐私协议2回调                    }                });                cb.pageCloseCallback(new OAuthPageEventCallback.PageClosedCallback() {                    @Override                    public void handle() {                        // 授权页面关闭回调                    }                });                cb.checkboxStatusChangedCallback(new CheckboxStatusChangedCallback() {                    @Override                    public void handle(boolean b) {                        // 复选框状态修改回调                    }                });            }        });
复制代码

UISettings 方式自定义竖屏 UI(setUiSettings)

/** * com.mob.secverify.SecVerify.class * 自定义竖屏UI  * @param uiSettings     自定义竖屏ui设置 */  public static void setUiSettings(UiSettings uiSettings)
复制代码


示例代码:


SecVerify.setUiSettings(uiSettings);
复制代码

** UISettings 方式自定义横屏 UI(setLandUiSettings)**

/** * com.mob.secverify.SecVerify.class * 自定义横屏UI  * @param landUiSettings     自定义横屏ui设置 */  public static void setLandUiSettings(LandUiSettings landUiSettings)
复制代码


示例代码:


SecVerify.setLandUiSettings(landUiSettings);
复制代码


UISettings 自定义 UI 详细文档请查看:UISettings自定义UI

用户头像

还未添加个人签名 2019.05.08 加入

还未添加个人简介

评论

发布
暂无评论
秒验丨Android端SDK API使用说明_android_MobTech袤博科技_InfoQ写作社区