在接入行为采集模块的App隐私政策中应添加我司隐私协议中的如下部分
4.提供识别机器行为欺诈风险服务 (仅适用于已集成设备指纹SDK行为采集模块的情形)
(1)功能描述:为了识别机器行为欺诈风险,SDK需要获取您或您最终用户的相关行为信息。
(2)必要个人信息:触摸、滚动、滑动、屏幕边缘滑动、缩放的行为信息,输入的行为信息(输入类型次数,输入速度,输入耗时),应用进入前台、进入后台的行为信息,浏览页面名称及停留时间的行为信息,设备方向的行为信息,陀螺仪传感器的行为信息,加速度计传感器的行为信息,鼠标的行为信息(web端),键盘的行为信息(web端)
(3)其他可选个人信息:无
dependencies:
tdbehavior_flutter: ^1.4.5在 main() 中使用 TDBehaviorWidget 包裹你的应用
import 'package:flutter/material.dart';
import 'package:trustdevice_pro_plugin/trustdevice_pro_plugin.dart';
import 'package:tdbehavior_flutter/tdbehavior_flutter.dart';
void main() {
runApp(
TDBehaviorWidget(
key: const Key("root_layout"),
child: MaterialApp( // 或CupertinoApp
navigatorObservers: [
// 注册路由观察者
TDBehaviorWidget.getRouteObserver(),
],
title: 'Your App Name',
home: const MyHomePage(title: 'Flutter Demo Home Page'),
),
),
);
}SDK 会自动监控带有 Key 的输入控件,在需要追踪的 TextField 中添加唯一Key:
TextField(
key: const Key('username_field'),
controller: _usernameController,
decoration: const InputDecoration(
labelText: '用户名',
hintText: '请输入用户名',
),
);⚠️⚠️⚠️在已经接入设备指纹的情况下,你需要将TDBehavior 模块 注册到设备指纹中,否则无法使用行为采集模块
示例代码
class _MyHomePageState extends State<MyHomePage> {
// 设备指纹插件
late TrustdeviceProPlugin _trustdeviceProPlugin;
@override
void initState() {
super.initState();
// ⚠️⚠️⚠️注册行为采集插件
final behaviorCollector = TDBehavior();
_trustdeviceProPlugin = TrustdeviceProPlugin(behaviorCollector);
}
}行为采集方法用于获取用户行为数据,其接口定义如下:
/**
* start,开始行为采集,将采集数据写入SDK内部容器中
*/
void start()
/**
* stop,结束行为采集,停止将采集数据写入SDK内部容器中,同时清空SDK内部容器中的数据;
*/
void stop()
/**
* collect,返回行为采集结果,如果SDK内部容器中存在数据,则会返回成功code == 0,同时清空SDK内部容器中的数据;
* 如果SDK内部容器中不存在数据则返回code == 104 错误码
*/
Futurn<Map<String, dynamic>> collect()示例代码
⚠️⚠️⚠️ 确保在业务界面调用start之后,存在用户行为,例如:文字输入、点击、
滑动等,否则调用 collect 会返回104错误码,表示没有采集到行为数据;
// 在进入业务界面时,调用 start方法,进行行为采集,例如进入登录界面时
_trustdeviceProPlugin.start();
...
// 在调用业务接口时,调用 collect方法,获取行为采集数据,例如点击登录按钮
final result = await _trustdeviceProPlugin.collect();
final int code = result['code'];
final String msg = result['msg'];
final String payload = result['payload'];
if (code == 0) {
print('获取行为采集结果成功,payload: $payload');
} else {
print('获取行为采集结果失败,code: $code, msg: $msg');
}
...
// 离开业务界面时,调用 stop方法,结束行为采集,例如离开登录界面时
_trustdeviceProPlugin.stop();指定不需要监听的输入框
在 TextField 输入框 设置属性 key 包含 "TDBehaviorExInput" ,设置后,将不会对TextField 输入框的文字输入事件进行监听
const TextField(
key: "otherKey,TDBehaviorExInput",
decoration: InputDecoration(
labelText: '不采集输入文字输入'
)
)initWithOptions方法选传配置