乐趣区

关于android-sdk:秒验丨Android端SDK-API使用说明

概述

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

退出移动版