秒验丨Android端SDK API使用说明

2年前 (2022) 程序员胖胖胖虎阿
142 0 0

概述

秒验提供预登录、登录、两种自定义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();

设置是否自动关闭授权页面(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)

代码示例

刷新授权页面(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)

示例代码:

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

版权声明:程序员胖胖胖虎阿 发表于 2022年11月23日 上午8:40。
转载请注明:秒验丨Android端SDK API使用说明 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...