OneLogin(一键登录)
进阶模式和常规模式是一键登录的两种调用逻辑,如无特别需求建议直接使用进阶模式,两模式不可混合调用。常规模式
1、调用逻辑
预取号和授权页拉起时机均由开发者自主控制。使用此调用逻辑,开发者需自主处理预取号的时机和超期重试的逻辑等。
init()
初始化 SDK 并配置APPID
preGetToken()
预取号(应用启动或进入登录页的前一个页面、用户登出时是调用该方法的时机)requestToken()
拉起授权页面(调用该方法前建议先调用isPreGetTokenResultValidate
判断预取号是否成功)dismissAuthActivity()
关闭授权页
注:同一个流程
preGetToken
只可调用一次,否则可能出现后一次调用无回调结果的情况
2、初始化
- 初始化
init
SDK 初始化接口init
,可放在 Application
的 onCreate
方法中进行初始化,或者其他预取号之前调用。
方法描述
public OneLoginHelper init(Context context); |
参数说明
参数 | 类型 | 说明 |
---|---|---|
context | Context | 上下文 |
appId | String | 极验后台配置唯一产品APPID ,请在官网申请 |
3、预取号
- 预取号
preGetToken
方法描述
预取号接口,可同init
方法一起放在 Application 的 onCreate
方法中进行注册,或者在登录页前一个页面初始化时调用;登录成功后预取号失效,如果用户退出登录后,为了方便下次重新登录能快速拉起授权页,也可以重新调用preGetToken
进行预取号。
public void preGetToken(String appId, AbstractOneLoginListener oneLoginListener); |
参数说明
参数 | 类型 | 说明 |
---|---|---|
appId | String | 产品 APPID, 如init 接口传了 appId 此处可传空值 |
timeout | int | 超时时间,单位:ms ,取值范围:1000~15000 ,默认8000 。传递该参数会统一设置预取号超时时间和取号超时时间为设定值,分别设置请使用不带timeout 的方法并参考setRequestTimeout 。 |
oneLoginListener | AbstractOneLoginListener | 回调监听器,需要开发者自己实现 |
代码示例
OneLoginHelper |
4、拉起授权页
- 拉起授权页
requestToken
方法描述
在需要登录的地方调用requestToken
接口拉起一键登录授权页,待用户点一键登录授权后获取运营商token
,获取成功后即可请求服务端换取本机手机号码。
public void requestToken(OneLoginThemeConfig oneLoginThemeConfig, AbstractOneLoginListener listener) |
参数说明
参数 | 类型 | 说明 |
---|---|---|
oneLoginThemeConfig | OneLoginThemeConfig | 自定义全局配置接口,用来配置授权页面 UI 样式 |
listener | AbstractOneLoginListener | 回调监听器,需要开发者自己实现 |
代码示例
取号并获取免密登录的 token,通过接口进行校验,并获取登录信息。
if (!OneLoginHelper.with().isPreGetTokenResultValidate()) { |
5、关闭授权页
- 关闭授权页
dismissAuthActivity
方法描述
用户主动关闭授权页。SDK 除了返回按钮触发关闭以外,默认是不 finsih 授权页的,需要开发者在回调结束后自行实现关闭授权页。
public void dismissAuthActivity() |
代码示例
OneLoginHelper.with().dismissAuthActivity(); |