关于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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理