Dataflux-SDK-flutter

agent

基于 ft ios android 调用的 plugin

使用

import 'package:ft_mobile_agent_flutter/ft_mobile_agent.dart';

1. 初始化配置

设置 Config 的属性 ,启动 SDK

  • 方法一
 static void configX(Config con)
  • 方法二
 /**
  * @method 指定初始化方法
  * @param metricsUrl     FT-GateWay metrics
  * @param akId           access key ID
  * @param akSecret       access key Secret
  * @param enableLog      是否打印日志
  * @param needBindUser   是否需要绑定用户
  * @param monitorType    监控类型
  * @param useGeoKey      是否使用高德作为地址解析器(该参数仅对 Android 平台有效)
  * @param geoKey         高德 key(该参数仅对 Android 平台有效)
  */
 static Future<void> config(String serverUrl,
      {String akId,
      String akSecret,
      String dataKitUUID,
      bool enableLog,
      bool needBindUser,
      int monitorType,
      bool useGeoKey,
      String geoKey}) async

2. 位置信息状态获取

/**
 * @method 位置信息状态获取 来判断位置信息是否获取成功
 * @param geoKey      使用高德作为地址解析器(该参数仅对 Android 平台有效)
 */
static Future<Map<dynamic,dynamic>> startLocation({String geoKey}) async
  • 返回值

    返回 Mapcode 表示错误码message 表示错误信息。 code = 0 : 位置信息获取成功。

3. 上报数据 与 上报列表

  • 上报数据
/**
 * 上报数据
 * @param measurement      当前数据点所属的指标集
 * @param tags             自定义标签
 * @param field            自定义指标
 */
static Future<Map<dynamic, dynamic>> track(
      String measurement, Map<String, dynamic> fields,
      [Map<String, dynamic> tags]) async
/**
 * 主动埋点,可多条上传。   立即上传 回调上传结果
 * @param trackList     主动埋点数据数组
 */
 static Future<Map<dynamic, dynamic>> trackList(
      List<TrackBean> list) async

  • 返回值

    返回 Mapcode 表示网络请求返回的返回码,response 为服务端返回的信息。 code 的值除了 HTTP 协议中规定的返回码, FT SDK 中额外规定了 4 种类型的 错误码,他们是 101,102,103,104,他们分别代表的意思是网络问题、参数问题、IO异常和未知错误。

4. 上报流程图

  • 方法
/**
 * 上报流程图
 * @param production   指标集 命名只能包含英文字母、数字、中划线和下划线,最长 40 个字符,区分大小写
 * @param traceId      标示一个流程单的唯一 ID
 * @param name         流程节点名称
 * @param duration     流程单在当前流程节点滞留时间或持续时间,毫秒为单位
 * @param parent       当前流程节点的上一个流程节点的名称,如果是流程的第一个节点,可不上报 (可选)
 * @param tags         自定义标签 (可选)
 * @param fields       自定义指标 (可选)
 */
static Future<void> trackFlowChart(
      String production, String traceId, String name, int duration,
      {String parent,
      Map<String, dynamic> tags,
      Map<String, dynamic> fields}) async

5. 主动埋点数据上报(后台运行)

  • 方法
 /**
  * 追踪自定义事件。 存储数据库,等待上传
  * @param measurement      指标(必填)
  * @param field            指标值(必填)
  * @param tags             标签(选填)
  */
static Future<void> trackBackground(
      String measurement, Map<String, dynamic> fields,
      {Map<String, dynamic> tags}) async

6. 用户的绑定与注销

FT SDK 提供了绑定用户和注销用户的方法,Config 属性needBindUserYES 时(默认为 NO),用户绑定的状态下,才会进行数据的传输。

  • 绑定用户
 /**
  * 绑定用户信息
  * @param name     用户名
  * @param Id       用户Id
  * @param exts     用户其他信息
  */
  static Future<void> bindUser(String name, String id,
      {Map<String, dynamic> extras}) async
  • 解绑用户
 /**
  * 注销用户信息
  */
 static Future<void> unbindUser() async

7. 停止 SDK 后台正在执行的操作

  • 方法
 /**
  * 关闭 SDK 正在做的操作
  */
 static Future<void> stopSDK() async

8. 使用示例

方法使用示例

参数与错误码

1. Config 可配置参数

字段类型说明是否必须
metricsUrlStringFT-GateWay metrics 写入地址
akIdStringaccess key IDenableRequestSigning 为 true 时,必须要填
akSecretStringaccess key SecretenableRequestSigning 为 true 时,必须要填
enableLogbool设置是否允许打印日志否(默认NO)
monitorTypeint采集数据
needBindUserbool是否开启绑定用户数据否(默认NO)

monitorType 可设置:

 class MonitorType {
     static const int ALL = 1;
     static const int BATTERY  = 1 << 1;   // 电池总量、使用量
     static const int MEMORY   = 1 << 2;   // 内存总量、使用率
     static const int CPU      = 1 << 3;   // CPU型号、占用率
     static const int GPU      = 1 << 4;   // GPU型号、占用率
     static const int NETWORK  = 1 << 5;   // 网络的信号强度、网络速度、类型、代理
     static const int CAMERA   = 1 << 6;   // 前置/后置 像素
     static const int LOCATION = 1 << 7;   // 位置信息  eg:上海
  }    
  

2. TrackBean

字段类型说明是否必须
measurementString当前数据点所属的指标集
tagsMap自定义标签
fieldsMap自定义指标

3. 错误码

字段说明
NetWorkException101网络问题
InvalidParamsException102参数问题
FileIOException103文件 IO 问题
UnknownException104未知问题

常见问题

Libraries

ft_mobile_agent_flutter