AutoTrackConfig constructor

AutoTrackConfig({
  1. String? host,
  2. int? uploadInterval,
  3. String? appKey = '',
  4. String? appSecret = '',
  5. Function? signature,
  6. bool enableUpload = false,
  7. String? trackId,
  8. String? userId,
  9. String? uniqueId,
  10. EventHandlerFunc? eventHandler,
  11. List<AutoTrackPageConfig<Widget>> pageConfigs = const [],
  12. bool useCustomRoute = false,
  13. List<Key> ignoreElementKeys = const [],
  14. List<String> ignoreElementStringKeys = const [],
  15. bool enablePageView = true,
  16. bool enablePageLeave = false,
  17. bool enableClick = true,
  18. bool enableDrag = false,
  19. bool enableIgnoreNullKey = false,
})

Implementation

AutoTrackConfig({
  this.host, // 数据上报地址
  this.uploadInterval, // 数据上报间隔
  this.appKey = '', // 数据上报时根据key和secret生成签名
  this.appSecret = '',
  this.signature, // 签名生成方法,默认使用sha256对key、时间戳和secret进行签名
  this.enableUpload = false, // 开启数据上报
  this.trackId, // 埋点ID,默认使用UUID,每次启动时会变化
  this.userId, // 用户ID
  this.uniqueId,
  this.eventHandler, // 事件处理
  this.pageConfigs = const [],
  this.useCustomRoute = false, // 使用自定义路由
  this.ignoreElementKeys = const [], // 忽略key列表
  this.ignoreElementStringKeys = const [],
  this.enablePageView = true, // 监听页面进入事件
  this.enablePageLeave = false, // 监听页面离开事件
  this.enableClick = true, // 监听点击事件
  this.enableDrag = false, // 监听拖拽事件
  this.enableIgnoreNullKey = false, // 忽略空key事件
}) {
  trackId ??= const Uuid().v4().replaceAll('-', '');
  signature ??= (t) => sha256.convert(utf8.encode('$appKey$t$appSecret')).toString();
}