> >

Captcha Android API Document

GTCaptcha4Client

验证 4.0 主要对外支持工具类

Method

getClient(Context)

获取 GTCaptcha4Client 工具类对象

Declaration

public static GTCaptcha4Client getClient(Context context)

Parameters

Param Type Description
context Context 上下文

Discussion

注意:非单例实现,通过 getClient() 获取的 GTCaptcha4Client 对象需要保存,以方便在 onDestory 或者其他生命周期使用

init(String)

使用默认配置初始化

Declaration

public GTCaptcha4Client init(String captchaId)

Parameters

Param Type Description
captchaId String 在后台申请的 captchaId

Discussion

注意:调用 init() 方法后就执行了加载验证码操作,若在 onResume() 生命周期之前调用,就预加载了验证码,当执行 verifyWithCaptcha() 展示验证码时候,则验证码很快加载展示出来。下同。

init(String, GTCaptcha4Config)

使用自定义配置初始化

Declaration

public GTCaptcha4Client init(String captchaId, GTCaptcha4Config config)

Parameters

Param Type Description
captchaId String 在后台申请的 captchaId
config GTCaptcha4Config 参数配置对象

addOnSuccessListener(GTCaptcha4Client.OnSuccessListener)

添加验证结果监听对象,当验证码加载成功,用户解答验证码结果回调

Declaration

public GTCaptcha4Client addOnSuccessListener(GTCaptcha4Client.OnSuccessListener response)

Parameters

Param Type Description
response GTCaptcha4Client.OnSuccessListener 验证结果监听对象

addOnFailureListener(GTCaptcha4Client.OnFailureListener)

添加加载验证码失败监听对象,加载验证码的过程中报错

Declaration

public GTCaptcha4Client addOnFailureListener(GTCaptcha4Client.OnFailureListener listener)

Parameters

Param Type Description
listener GTCaptcha4Client.OnFailureListener 加载验证码失败监听对象

addOnWebViewShowListener(GTCaptcha4Client.OnWebViewShowListener)

添加加载验证前端成功的监听对象,验证前端加载成功后回调。预加载已完成的情况下,调用verifyWithCaptcha后立即回调。

Declaration

public GTCaptcha4Client addOnWebViewShowListener(GTCaptcha4Client.OnWebViewShowListener listener)

Parameters

Param Type Description
listener GTCaptcha4Client.OnWebViewShowListener 验证前端加载成功监听对象

verifyWithCaptcha()

开启验证流程,加载验证码

Declaration

public GTCaptcha4Client verifyWithCaptcha()

Discussion

注意:调用 verifyWithCaptcha() 之前需要先调用 init()addOnSuccessListener()addOnFailureListener 否则可能报错

cancel()

取消验证,关闭验证窗口

Declaration

public void cancel()

Discussion

注意:调用 cancel() 之前需要先调用 init()addOnSuccessListener()addOnFailureListener 否则可能报错

setLogEnable(boolean enable)

设置开启/关闭打印日志监控

Declaration

public void setLogEnable(boolean enable)

Discussion

调用 setLogEnable 会控制日志打印功能

destroy()

销毁生命周期长的资源

Declaration

public void destroy()

Discussion

销毁验证资源,务必调用

Discussion

该方法在客户使用的验证码界面的 onDestroy 生命周期中调用

configurationChanged(Configuration)

横竖屏切换

Declaration

public void configurationChanged(Configuration newConfig)

Discussion

该方法在横竖屏切换生命周期 onConfigurationChanged 方法中调用

getVersion()

获取版本号

Declaration

public static String getVersion()

Return Value

返回版本号,类型为 String

isSupportWebView(Context)

检测是否支持系统 WebView,若不支持,则建议走兜底逻辑

Declaration

public static Pair<Boolean, String> isSupportWebView(Context context)

Return Value

Pair 对象说明

Param Type Description
first Boolean 是否支持 WebView,若不支持则可以走兜底逻辑
second String 加载 WebView 对象报错说明

GTCaptcha4Config#Builder

参数配置类

setTimeOut(int)

设置请求超时时间

Declaration

public Builder setTimeOut(int timeOut)

Parameters

Param Type Description
timeOut int 单位 ms,默认 10000

setResourcePath(String)

设置 WebView 加载资源地址

Declaration

public Builder setResourcePath(String html)

Parameters

Param Type Description
html String WebView 加载地址

Discussion

默认加载 assets 目录的 gt4-index*.html 文件,无特殊需求无需设置此接口

setLanguage(String)

传输 JS 的设置语言,此接口只能控制加载 WebView 的语言,SDK 的多语言跟随当前应用

Declaration

public Builder setLanguage(String language)

Parameters

Param Type Description
language String 前端支持语言短码,详见前端文档

Discussion

如果设置为 null 或者未设置,则使用应用默认语言短码传输给前端

setCanceledOnTouchOutside(boolean)

设置点击灰色区域是否消失,默认消失

Declaration

public Builder setCanceledOnTouchOutside(boolean canceledOnTouchOutside)

Parameters

Param Type Description
canceledOnTouchOutside boolean true 为消失

setDebug(boolean)

设置是否是 debug 模式,上线务必置为 false,或者不配置

Declaration

public Builder setDebug(boolean debug)

Parameters

Param Type Description
debug boolean truedebug,默认为 false

setBackgroundColor(int)

设置 WebView 背景色,控制的是 Android WebView 控件的背景色,和前端 JS 的背景色不同

Declaration

public Builder setBackgroundColor(int backgroundColor)

Parameters

Param Type Description
backgroundColor int 颜色资源地址或者 Color.parseColor() 返回值

setDialogStyle(String)

设置验证码对话框的主题样式

Declaration

public Builder setDialogStyle(String dialogStyle)

Parameters

Param Type Description
dialogStyle String 对话框的主题样式名称

Declaration

以下为默认主题样式

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

setDialogShowListener(GTCaptcha4Client.OnDialogShowListener)

设置验证窗口显示的监听回调

Declaration

public void setDialogShowListener(GTCaptcha4Client.OnDialogShowListener dialogShowListener)

Parameters

Param Type Description
dialogShowListener GTCaptcha4Client.OnDialogShowListener 验证窗口显示的监听对象

setParams(Map)

额外参数配置,当前参数完全传输给 JS

Declaration

public Builder setParams(Map<String, Object> params)

Parameters

Param Type Description
params JSONObject Additional configuration parameter

Discussion

支持的键值如下表:

Key ValueType Description Default Value
displayMode int 主题样式, 0: 跟随系统 1: 普通 2: 暗黑 0
protocol String 协议头,支持 "https:// or http:// https://
bgColor String 验证背景蒙版颜色,遵循 css 规则,注意最后两位为透明度 #00000000
loading String 自定义 loading,WebView 加载 html 的loading 资源相对路径,空字符串表示取消loading效果 "/gt4-loading.gif"
rem float 设置验证码整体的缩放比例 1
hideBar JSONArray 隐藏后续验证界面的关闭按钮、刷新按钮 N/A
nextWidth String 验证码弹窗的宽度,需要携带单位,如”300px” N/A
riskType String 结合风控融合,指定验证形式 N/A
hideSuccess boolean 隐藏验证成功弹窗 FALSE

Sample Code

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);

GTCaptcha4Config.Builder builder = new GTCaptcha4Config.Builder()
.setParams(params);

build()

构造 GTCaptcha4Config 对象,传输给 init() 接口使用

Declaration

public GTCaptcha4Config build()

GTCaptcha4Client#OnSuccessListener

验证结果回调监听类

onSuccess(Boolean, String)

验证接口回调

Declaration

void onSuccess(Boolean status, String response)

Parameters

Param Type Description
status Boolean 用户操作验证结果,true 为成功,false 为失败,失败会刷新验证样式
response String 用户操作验证成功,需要拿 response 数据到服务端验证

Discussion

验证成功描述如:

{"lot_number":"b150e61198924eff9eaae121e9b67aa8","pass_token":"6fcfba4c35cb57b873c99c5b3b02089c58a26244c18f7706aaa1e87aed3aa8f4","gen_time":"1622020720","captcha_output":"Tu6rW0dRNO0NLxMKftwdH00G5whF5HHddthoXSEA1G4="}

验证失败描述如:

{"captchaId":"647f5ed2ed8acb4be36784e01556bb71","captchaType":"slide","challenge":"95ed53b4-95c6-4c6b-9aac-769b29ef74a0"}

GTCaptcha4Client#OnFailureListener

加载失败回调监听类

onFailure(String)

加载失败回调

Declaration

void onFailure(String error)

Parameters

Param Type Description
error String 验证加载失败描述,注意:包括用户主动取消

Discussion

加载失败描述如:

{"code":"-14460","msg":"验证会话已取消","desc":{"description":"User cancelled 'Captcha'"}}

GTCaptcha4Client#OnWebViewShowListener

验证前端加载成功回调监听类

onWebViewShow()

验证前端加载成功

Declaration

void onWebViewShow()

Discussion

在验证前端加载成功后回调。预加载已完成的情况下,调用verifyWithCaptcha后立即回调。

GTCaptcha4Client#OnDialogShowListener

验证窗口显示的监听回调

actionBeforeDialogShow(Dialog)

验证窗口在显示前回调

Declaration

void actionBeforeDialogShow(Dialog dialog)

Parameters

Param Type Description
dialog Dialog 验证窗口实例

actionAfterDialogShow()

验证窗口在显示后回调

Declaration

void actionAfterDialogShow(Dialog dialog)

Parameters

Param Type Description
dialog Dialog 验证窗口实例

Discussion

可在此处对系统样式进行改变,例如隐藏导航栏、隐藏状态栏等

onDialogFocusChanged()

验证窗口在改变焦点时回调

Declaration

void onDialogFocusChanged(Dialog dialog, boolean hasFocus)

Parameters

Param Type Description
dialog Dialog 验证窗口实例
hasFocus boolean 是否有焦点