本文介绍图形认证Android客户端接入时所需的接口信息。
工具类接口
获取AlicomCaptcha4Client工具类对象
非单例实现,通过getClient()
获取的AlicomCaptcha4Client
对象需要保存,以方便在onDestory
或其他生命周期使用。
public static AlicomCaptcha4Client getClient(Context context)
参数 | 类型 | 说明 |
context | Context | 上下文 |
使用默认配置初始化
调用init()
方法后执行了加载验证码操作,若在onResume()
生命周期之前调用,就会预加载验证码;当执行verifyWithCaptcha()
展示验证码时,就会展示验证码。
public AlicomCaptcha4Client init(String captchaId)
参数 | 类型 | 说明 |
captchaId | String | 验证ID,请传入在控制台创建认证方案后生成的 |
使用自定义配置初始化
public AlicomCaptcha4Client init(String captchaId, AlicomCaptcha4Config config)
参数 | 类型 | 说明 |
captchaId | String | 验证ID,请传入在控制台创建认证方案后生成的 |
config | AlicomCaptcha4Config | 参数配置对象 |
添加验证结果监听的对象
添加验证结果监听的对象,当验证码加载成功,用户解答验证码结果回调。
public AlicomCaptcha AlicomCaptcha4Client
addOnSuccessListener(AlicomCaptcha4Client.OnSuccessListener response)
参数 | 类型 | 说明 |
response | AlicomCaptcha4Client.OnSuccessListener | 验证结果监听的对象 |
添加加载验证前端成功监听的对象
添加加载验证前端成功的监听的对象,验证前端加载成功后回调。预加载已完成的情况下,调用verifyWithCaptcha
后立即回调。
public AlicomCaptcha4Client
addOnWebViewShowListener(AlicomCaptcha4Client.OnWebViewShowListener listener)
参数 | 类型 | 说明 |
listener | AlicomCaptcha4Client.OnWebViewShowListener | 验证前端加载成功监听的对象 |
添加加载验证码失败监听的对象
添加加载验证码失败监听的对象,加载验证码的过程中报错。
public AlicomCaptcha AlicomCaptcha4Client
addOnFailureListener(AlicomCaptcha4Client.OnFailureListener listener)
参数 | 类型 | 说明 |
listener | AlicomCaptcha4Client.OnFailureListener | 加载验证码失败监听的对象 |
开启验证流程
开启验证流程,加载验证码。调用verifyWithCaptcha()
之前需要先调用init()
、addOnSuccessListener()
、addOnFailureListener
否则可能报错。
public AlicomCaptcha AlicomCaptcha4Client verifyWithCaptcha()
取消验证
取消验证,关闭验证窗口。调用verifyWithCaptcha()
之前需要先调用init()
、addOnSuccessListener()
、addOnFailureListener
否则可能报错。
public void cancel()
设置开启/关闭打印日志监控
public void setLogEnable(boolean enable)
销毁生命周期长的资源
该方法在用户使用的验证码界面的onDestroy
生命周期中调用。
public AlicomCaptcha void destroy()
获取版本号
返回的版本号,类型为String。
public static String getVersion()
检测是否支持系统WebView
public static Pair<Boolean, String> isSupportWebView(Context context)
参数 | 类型 | 说明 |
first | Boolean | 是否支持WebView,若不支持则可以走兜底逻辑 |
second | String | 加载WebView对象报错说明 |
参数配置类接口
设置请求超时时间
public AlicomCaptcha Builder setTimeOut(int timeOut)
参数 | 类型 | 说明 |
timeOut | int | 请求超时时间,单位:ms,默认10000 |
设置WebView加载资源地址
默认加载assets目录的gt4-index*.html文件,没有特殊需求无需设置此接口。
public AlicomCaptcha Builder setResourcePath(String html)
参数 | 类型 | 说明 |
html | String | WebView加载地址 |
控制加载WebView语言
传输JS的设置语言,此接口仅控制加载WebView的语言, SDK的多语言跟随当前应用。如果设置为null或未设置,则使用应用默认语言短码传输给前端。
public AlicomCaptcha Builder setLanguage(String language)
参数 | 类型 | 说明 |
language | String | 前端支持语言短码 |
支持的语言及其语言短码如下:
语言 | Language | 语言短码 |
简体中文 | Chinese(Simplified) | zho |
繁体中文(hk) | Chinese(Hong Kong) | zho-hk |
繁体中文(tw) | Chinese(Taiwan) | zho-tw |
美式英文 | English | eng |
英式英文 | English | eng-gb |
日语 | Japanese | jpn |
印尼 | Indonesian | ind |
韩语 | Korean | kor |
俄语 | Russian | rus |
阿拉伯语 | Arabic | ara |
西班牙语 | Spanish | spa |
法语 | French | fra |
德语 | German | deu |
维吾尔语 | Uyghur | udm |
巴西葡语 | Portuguese(Brazil) | pon |
欧洲葡语 | Portuguese(Europe) | por |
设置点击灰色区域是否消失
public AlicomCaptcha Builder setCanceledOnTouchOutside(boolean canceledOnTouchOutside)
参数 | 类型 | 说明 |
canceledOnTouchOutside | boolean | 设置点击灰色区域是否消失。
|
设置是否是debug模式
public AlicomCaptcha Builder setDebug(boolean debug)
参数 | 类型 | 说明 |
debug | boolean | 设置是否是debug模式。
|
设置WebView背景色
设置WebView
背景色,控制的是Android WebView
控件的背景色,和前端JS的背景色不同。
public AlicomCaptcha Builder setBackgroundColor(int backgroundColor)
参数 | 类型 | 说明 |
backgroundColor | int | 颜色资源地址或 |
设置验证码对话框的主题样式
public Builder setDialogStyle(String dialogStyle)
参数 | 类型 | 说明 |
dialogStyle | String | 对话框的主题样式名称 |
默认的主题样式
<style name="gt4_captcha_dialog_style" parent="android:Theme.Dialog">
<!--Dialog的windowFrame框为无-->
<item name="android:windowFrame">@null</item>
<!--是否浮现在activity之上-->
<item name="android:windowIsFloating">true</item>
<!--是否半透明-->
<item name="android:windowIsTranslucent">true</item>
<!--除去title-->
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<!--显示区域以外是否使用黑色半透明背景-->
<item name="android:backgroundDimEnabled">true</item>
<!--设置dialog的背景-->
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:padding">0dp</item>
</style>
设置验证窗口显示的监听回调
public void setDialogShowListener(AlicomCaptcha4Client.OnDialogShowListener dialogShowListener)
参数 | 类型 | 说明 |
dialogShowListener | AlicomCaptcha4Client.OnDialogShowListener | 验证窗口显示监听的对象 |
额外参数配置
public Builder setParams(Map<String, Object> params)
参数 | 类型 | 说明 |
params | JSONObject | 额外参数配置,当前参数传给JS |
支持的键值如下:
值 | 类型 | 说明 |
displayMode | int | 主题样式。取值:
|
protocol | String | 协议头,支持 |
bgColor | String | 验证背景蒙版颜色,遵循CSS规则,注意最后两位为透明度。默认值: |
loading | String | 自定义loading,WebView加载HTML的loading资源相对路径,空字符串表示取消loading效果。 |
rem | float | 设置验证码整体的缩放比例。 |
hideBar | JSONArray | 隐藏后续验证界面的关闭按钮、刷新按钮 。 |
nextWidth | String | 验证码弹窗的宽度,需要携带单位,如"300px"。 |
riskType | String | 当服务端配置了结合风控融合,此字段可指定验证形式。 重要 由于目前暂未提供风控融合模式,此参数调用不会生效。 |
hideSuccess | boolean | 隐藏验证成功弹窗。 |
代码示例
Map<String, Object> params = new HashMap<>();
params.put("displayMode", 0);
params.put("protocol", "https://");
params.put("bgColor", "#CC0000FF");
params.put("loading", "./loading_test.gif");
params.put("rem", 0.6);
JSONArray hideBar = new JSONArray()
.put("close")
.put("refresh");
params.put("hideBar", hideBar);
params.put("nextWidth", "300px");
params.put("hideSuccess", true);
AlicomCaptcha4Config.Builder builder = new AlicomCaptcha4Config.Builder()
.setParams(params);
构造AlicomCaptcha4Config对象
构造AlicomCaptcha4Config对象,传输给init()
接口使用。
public AlicomCaptcha AlicomCaptcha4Config build()
回调监听类接口
验证接口回调
void onSuccess(Boolean status, String response)
参数 | 类型 | 说明 |
status | Boolean | 用户操作验证结果
|
response | String | 用户操作验证成功,需要获取response数据到服务端验证 |
验证成功示例
{
"lot_number":"b150e61198924eff9eaae121e9b67aa8",
"pass_token":"6fcfba4c35cb57b873c99c5b3b02089c58a26244c18f7706aaa1e87aed3aa8f4",
"gen_time":"1622020720",
"captcha_output":"Tu6rW0dRNO0NLxMKftwdH00G5whF5HHddthoXSEA1G4="
}
验证失败示例
{
"captchaId":"647f5ed2ed8acb4be36784e01556bb71",
"captchaType":"slide",
"challenge":"95ed53b4-95c6-4c6b-9aac-769b29ef74a0"
}
加载失败回调
void onFailure(String error)
参数 | 类型 | 说明 |
error | String | 验证加载失败描述,包括用户主动取消 |
加载失败示例
{
"code":"-14460",
"msg":"验证会话已取消",
"desc":
{"description":"User cancelled'Captcha'"}
}
验证前端加载成功
在验证前端加载成功后回调。预加载已完成的情况下,调用verifyWithCaptcha
后立即回调。
void onWebViewShow()
验证窗口在显示前回调
void actionBeforeDialogShow(Dialog dialog)
参数 | 类型 | 说明 |
dialog | Dialog | 验证窗口实例 |
验证窗口在显示后回调
可在此处对系统样式进行改变,例如:隐藏导航栏、隐藏状态栏等。
void actionAfterDialogShow(Dialog dialog)
参数 | 类型 | 说明 |
dialog | Dialog | 验证窗口实例 |
验证窗口在改变焦点时回调
void onDialogFocusChanged(Dialog dialog, boolean hasFocus)
参数 | 类型 | 说明 |
dialog | Dialog | 验证窗口实例 |
hasFocus | boolean | 是否有焦点 |