captcha_plugin_flutter 0.0.9 captcha_plugin_flutter: ^0.0.9 copied to clipboard
A new Flutter project for captcha.
行为式验证码 #
全新人机验证方式,高效拦截机器行为,业务安全第一道防线。搭载风险感知引擎,智能切换验证难度,安全性高,极致用户体验。读屏软件深度适配,视障群体也可轻松使用,符合工信部无障碍适配要求
平台支持(兼容性) #
Android | iOS |
---|---|
适用版本区间:4.4 - 13.0 | 适用版本区间:9 - 14 |
环境准备 #
资源引入/集成 #
在 pubspec.yaml 中添加
dependencies:
captcha_plugin_flutter: ^0.0.9
调用示例 #
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final CaptchaPluginFlutter captchaPlugin = new CaptchaPluginFlutter();
var eventChannel = const EventChannel("yd_captcha_flutter_event_channel");
@override
void initState() {
super.initState();
eventChannel.receiveBroadcastStream().listen(_onEvent);
}
void _onEvent(Object response) {
if (response is Map) {
var validate = response["validate"];
if (validate != null) {
print("验证成功");
} else {
var code = response["code"];
var msg = response["msg"];
print(msg);
print(code);
}
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: new Column(
children: [
TextButton(
onPressed: () => {
captchaPlugin.init({
"captcha_id": "易盾业务id",
"is_debug": true
})
},
child: Text("初始化")),
TextButton(
onPressed: () => {captchaPlugin.showCaptcha()},
child: Text("显示验证码")),
],
)),
),
);
}
}
SDK 方法说明 #
1. 初始化 #
代码说明:
CaptchaPluginFlutter captchaPlugin = new CaptchaPluginFlutter();
captchaIns.init(options)
options 支持的可配置项说明
key | value 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
captcha_id | String | 是 | 无 | 易盾获取到的业务 id |
is_debug | Boolean | 否 | false | 是否启动 debug 模式 |
is_no_sense_mode | Boolean | 否 | false | 是否为智能无感知 |
dimAmount | Number | 否 | 0.5 | 验证码框遮罩层透明度 |
control_bar_start_url | String | 否 | 无 | 自定义滑块开始背景 |
control_bar_moving_url | String | 否 | 无 | 自定义滑块滑动背景 |
control_bar_error_url | String | 否 | 无 | 自定义滑块错误背景 |
is_touch_outside_disappear | Boolean | 否 | true | 点击弹窗外部是否可以关闭验证码 |
timeout | Number | 否 | 10000 | 超时时间/ms |
is_hide_close_button | Boolean | 否 | false | 是否隐藏关闭按钮 |
use_default_fallback | Boolean | 否 | true | 是否采用默认降级 |
failed_max_retry_count | Number | 否 | 3 | 失败后尝试最大次数 |
language_type | String | 否 | zh-CN | 多语言语言类型 |
loading_text | String | 否 | 智能检测中 | 自定义加载文案 |
language_type 多语言对应表
多语言值 | 说明 |
---|---|
zh-TW | 中文繁体 |
en | 英文 |
ja | 日语 |
ko | 韩文 |
th | 泰语 |
vi | 越南语 |
fr | 法语 |
ru | 俄语 |
ar | 阿拉伯语 |
de | 德语 |
it | 意大利语 |
he | 希伯来语 |
hi | 印地语 |
id | 印尼语 |
my | 缅甸语 |
lo | 老挝语 |
ms | 马来语 |
pl | 波兰语 |
pt | 葡萄牙语 |
es | 西班牙语 |
tr | 土耳其语 |
2. 显示验证码 #
代码说明:
captchaIns.showCaptcha()
3. 销毁验证码弹窗 #
代码说明:
captchaIns.destroy()
4. 回调结果监听 #
使用 flutter 的 EventChannel
代码说明:
var eventChannel = const EventChannel("yd_captcha_flutter_event_channel");
@override
void initState() {
super.initState();
eventChannel.receiveBroadcastStream().listen(_onEvent);
}
void _onEvent(Object response) {
if (response is Map) {
var validate = response["validate"];
if (validate != null) {
print("验证成功");
} else {
if (response.containsKey("code")) {
// code:错误码 msg:错误信息
var code = response["code"];
var msg = response["msg"];
} else {
// closed:true 验证码相关弹窗已关闭
var closed = response["closed"];
}
}
}
}