概述与资源
行为验证 Android SDK 提供给集成 Android 原生客户端开发的开发者使用。
环境需求
条目 | 内容 |
---|---|
开发目标 | Android 5.0+ |
开发环境 | Android Studio 4.1.0 |
编译工具 | gradle (ant 编译请解压 SDK,提取 jar 包和资源文件接入) |
系统依赖 | 无 |
sdk 三方依赖 | OKHTTP |
demo 依赖 | OKHTTP |
相关资源
条目 | 资源地址 |
---|---|
产品结构流程 | 通讯流程, 交互流程 |
错误码列表 | Error Code 列表 |
自定义 API 处理 | 文档下载 |
Demo 工程下载 | 示例工程 |
安装
集成 SDK
使用极验行为验证 SDK 视为同意 极验隐私政策
远程依赖集成
代码托管在 maven,使用前请检查主项目 build.gradle 文件中是否声明了 mavenCentral() 配置
implementation 'com.geetest.sensebot:sensebot:4.4.2.1' |
手动下载集成
使用从下方链接下载.zip
文件获取最新的 sdk (兼容 androidx)。
导入 SDK
如果你不是使用远程依赖集成, 需要将 zip 包中的.aar
文件拖拽到工程中的 libs 文件夹下。
在拖入.aar
到 libs 文件夹后, 还要检查.aar
是否被添加到Library,要在项目的build.gradle
下添加如下代码:
repositories { |
并且要手动将 aar 包添加依赖 (AAR 默认不传递第三方依赖,需要您手动添加!):
implementation(name: 'geetest_sensebot_android_vx.y.z_date', ext: 'aar') |
配置接口
Android sdk 主要提供以下接口:
- 配置验证初始化
- 启动验证
- 获取验证回调
参考行为验证的通讯流程, 必须要先在您的后端搭建相应的服务端SDK,并配置从极验管理后台获取的id
和key
, 并且将配置的接口API1
和API2
放入客户端的初始化方法中。
集成代码参考下方的代码示例
编译并运行你的工程
编译你的工程, 体验行为验证!
轻轻点击你集成的验证按钮, 如此自然, 如此传神。
视觉展示
与自定义的按钮绑定集成
使用极验提供的按钮样式集成
代码示例
文件配置
添加权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 可选,输入日志到 SD 卡,方便报错排查问题 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />混淆规则
SDK 的 aar 包已做混淆处理,两次混淆会导致不可预期的错误,默认情况下 aar 包内包含当前 SDK 的混淆配置,远端依赖或者本地 aar 依赖都能确保 SDK 不被二次混淆。如有解压 aar 包单独集成 jar 与 资源文件的需求,请务必将解压目录中的 proguard.txt
文件内容拷贝到应用的混淆配置中,跳过对 SDK 的二次混淆操作。
- 如果使用了 andRes 进行资源混淆,请将 SDK 内部包含资源排除混淆,避免因找不到资源而报错。排除配置如下:
"R.drawable.gt3*", |
通过与自定义按钮绑定的方式集成
注册验证会话
在
onCreate
生命周期处理(Fragment中 在 onCreateView)// 请在oncreate方法里初始化以获取足够手势数据来保证第一轮验证成功率
GT3GeetestUtils gt3GeetestUtils = new GT3GeetestUtils(this);初始化配置参数
可以在
onCreate
生命周期配置,也可在被调用配置// 配置bean文件,也可在oncreate初始化
gt3ConfigBean = new GT3ConfigBean();
// 设置验证模式,1:bind,2:unbind
gt3ConfigBean.setPattern(1);
// 设置点击灰色区域是否消失,默认不消息
gt3ConfigBean.setCanceledOnTouchOutside(false);
// 设置语言,如果为null则使用系统默认语言
gt3ConfigBean.setLang(null);
// 设置加载webview超时时间,单位毫秒,默认10000,仅且webview加载静态文件超时,不包括之前的http请求
gt3ConfigBean.setTimeout(10000);
// 设置webview请求超时(用户点选或滑动完成,前端请求后端接口),单位毫秒,默认10000
gt3ConfigBean.setWebviewTimeout(10000);
// 设置回调监听
gt3ConfigBean.setListener(new GT3Listener());
gt3GeetestUtils.init(gt3ConfigBean);
// 开启验证
gt3GeetestUtils.startCustomFlow();
通过极验提供的按钮集成
添加按钮控件
<com.geetest.sdk.views.GT3GeetestButton
android:id="@+id/btn_geetest"
android:layout_width="290dp"
android:layout_height="44dp"
android:layout_centerHorizontal="true"
android:layout_centerInParent="true"
android:gravity="center"
android:orientation="horizontal" />注册验证会话
在
onCreate
生命周期处理(Fragment中 在 onCreateView)// 请在oncreate方法里初始化以获取足够手势数据来保证第一轮验证成功率
GT3GeetestButton geetestButton = (GT3GeetestButton) findViewById(R.id.btn_geetest);
GT3GeetestUtils gt3GeetestUtils = new GT3GeetestUtils(this);初始化配置参数
可以在
onCreate
生命周期配置,也可在被调用配置// 配置bean文件,也可在oncreate初始化
gt3ConfigBean = new GT3ConfigBean();
// 设置验证模式,1:bind,2:unbind
gt3ConfigBean.setPattern(2);
// 设置点击灰色区域是否消失,默认不消息
gt3ConfigBean.setCanceledOnTouchOutside(false);
// 设置语言,参考API文档。如果为null则使用系统默认语言(TODO 若想设置语言立即生效,则init需要在setContentView之前)
gt3ConfigBean.setLang(null);
// 设置加载webview超时时间,单位毫秒,默认10000,仅且webview加载静态文件超时,不包括之前的http请求
gt3ConfigBean.setTimeout(10000);
// 设置webview请求超时(用户点选或滑动完成,前端请求后端接口),单位毫秒,默认10000
gt3ConfigBean.setWebviewTimeout(10000);
// 设置回调监听
gt3ConfigBean.setListener(new GT3Listener());
gt3GeetestUtils.init(gt3ConfigBean);
// 绑定
geetestButton.setGeetestUtils(gt3GeetestUtils);
处理验证回调
处理验证过程中回调数据, 需要在onButtonClick
回调方法处理 API1 请求,onDialogResult
回调方法处理 API2 请求,具体参考 Demo
|
另外配置接口
销毁资源
在 onDestroy
生命周期销毁资源
public void onDestroy(){ |
横竖屏切换
|
示例代码细节参考官方提供的 Demo