概述
秒验提供预登录、登录、两种自定义 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()
复制代码
关于该方法,作以下说明:
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
评论