菜单

集成文档(Flutter 插件)

集成神策分析 SDK Flutter 插件

引入插件

在 Flutter 项目的 pubspec.yaml 文件中 dependencies 里面添加 sensors_analytics_flutter_plugin 依赖。

dependencies: 
  # 添加神策 flutter plugin
  sensors_analytics_flutter_plugin: ^3.0.1

执行 flutter pub get 命令安装插件。

flutter pub get

Flutter 插件与 Android 和 iOS 对应的 SDK 版本依赖关系:

Flutter 插件版本 Android 可用 SDK 版本范围 iOS 可用 SDK 版本范围
v2.3.0 <= Flutter 插件版本号 v6.6.0 <= SDK 版本号 v4.5.0 <= SDK 版本号
v2.2.0 <= Flutter 插件版本号 <=v2.2.2 v6.5.1 <= SDK 版本号 <= v6.5.5 v4.4.6 <= SDK 版本号 <= v4.4.8
v2.1.0 <= Flutter 插件版本号 <=v2.1.1 v6.0.0 <= SDK 版本号 <= v6.5.0 v4.0.0 <= SDK 版本号 <= v4.4.5
v1.0.5 <= Flutter 插件版本号 <=v2.0.4 v4.4.0 <= SDK 版本号 <= v5.4.7 v2.1.17 <= SDK 版本号 <= v3.1.9
v1.0.0 <= Flutter 插件版本号 <=v1.0.4 SDK 版本号 <= v4.3.7 SDK 版本号 <= v2.1.15

Flutter Web 支持

Flutter 插件 v3.0.0 版本以上 支持 Flutter Web 端埋点。Web 端不仅需要引入 Flutter 插件,同时需要在 Flutter Web 项目中集成神策 Web JS SDK。步骤如下:

  1. 下载神策 sensorsdata.min.js,并放入到 Flutter 项目的 web 目录下。
  2. 在 web/index.html 文件的 head 标签中引用 Web JS SDK,代码如下:

     <script charset='UTF-8' src="sensorsdata.min.js "></script>

Flutter 插件初始化

获取项目数据接收地址

  • 每个项目都有单独的数据接收地址
  • 请使用 管理员 账户获取相应项目的数据接收地址

初始化 SDK

自 Flutter 插件 v2.1.0 开始支持在 Flutter 端进行初始化。示例如下:

SensorsAnalyticsFlutterPlugin.init(
    serverUrl: "<#数据接收地址#>",
    enableLog: true,
    visualized: VisualizedConfig(autoTrack: true, properties: true),
    android: AndroidConfig(maxCacheSize: 32 * 1024 * 1024, jellybean: true, subProcessFlush: true),
    ios: IOSConfig(maxCacheSize: 10000));

注意:通常原生端和 Flutter 端只要初始化一次即可。若选择在 Flutter 端初始化,就不需要再在原生端初始化了。

init() 方法参数说明

参数名 参数类型 参数说明 备注
serverUrl String? 数据接收地址  
enableLog bool 是否显示日志  
flushInterval int 设置两次事件上报的最小间隔 默认 15 秒,最小 5 秒,单位毫秒
flushBulksize int 设置本地缓存触发 flush 的最大条目数 默认 100,最小 50
networkTypes Set<SANetworkType>? 设置上报网络情况 TYPE_NONE, TYPE_2G, TYPE_3G, TYPE_4G, TYPE_WIFI, TYPE_5G, TYPE_ALL
encrypt bool 是否开启加密 仅支持 RSA + AES
javaScriptBridge bool 是否支持 H5 打通 默认 false
android AndroidConfig? Android 端特有配置
  • subProcessFlush: 是否支持子进程上报数据
  • jellybean: 打通是否支持 API level 16 及以下的版本
  • maxCacheSize: 最大缓存数,单位 byte 默认为: 32M,即 32 * 1024 * 1024
android:{ subProcessFlush:true, jellybean:true, maxCacheSize:48 * 1024 * 1024 }
ios IOSConfig? iOS 端特有配置
  • maxCacheSize: 最大缓存数,单位条。默认值:10000
ios:{ maxCacheSize:10000 }
web WebConfig? Web 端特有配置
  • publicKey: 国密公钥
  • pkv:国密 pkv
开启 web 端国密加密
  1. 下载 sensorsdata.plugin.sm.js,并放在项目 web 目录下
  2. 在 web/index.html 文件的 head 标签里引入 sensorsdata.plugin.sm.js
  3. 在初始化里配置 encrypt: true,然后传入 web 国密参数如下:
    web: WebConfig( publicKey: 'xxx', pkv: 'xxx' )
globalProperties Map? 配置全局公共属性 其优先级低于静态公共属性
  1. 若 App 有合规需求,可参考 合规说明
  2. 以上是在 Flutter 代码中进行初始化。老版本的插件不支持这种初始化方式,若需要在原生端初始化,请参考 Android SDK 使用指南iOS SDK 使用指南

 

配置 Scheme

获取项目 Scheme

  • 项目的 Scheme 需要管理员账户进行获取
  • App 工程中可以同时配置多个项目的 Scheme

App 中添加 Scheme

在使用神策系统中的 Debug 实时查看、可视化全埋点等需要扫码的功能时,用于拉起页面。针对 Android 和 iOS 平台,配置方式不一样:

  • Android 平台配置 Scheme(此处需要配置链接)
  • iOS 平台配置 Scheme(此处需要配置链接)

SDK 基本配置

用户关联

用户关联是为了对用户进行唯一标识,提高用户行为分析的准确性。目前神策提供了简易用户关联和全域用户关联,分别用于支撑不同的业务场景。

设置事件公共属性

对于所有事件都需要添加的属性,初始化 SDK 后,可以通过 registerSuperProperties() 将属性注册为公共属性。详细使用文档参见 基础 API 功能介绍

记录激活事件

可以调用 trackAppInstall() 方法记录激活事件,多次调用此方法只会在第一次调用时触发激活事件。详细使用文档参见 渠道追踪与广告

代码埋点追踪事件

SDK 初始化后,可以通过 track() 方法追踪用户行为事件,并为事件添加自定义属性。详细使用文档参见 基础 API 功能介绍

调试查看事件信息

可以在 init() 方法初始化时 enableLog 设置参数为 true。或者调用

import 'package:sensors_analytics_flutter_plugin/sensors_analytics_flutter_plugin.dart';
...
SensorsAnalyticsFlutterPlugin.enableLog(true/false) // 方法来开启或关闭日志。

Logcat(Android)Xcode(iOS) 中筛选 SA. 关键词:

  • 埋点事件触发成功时,SDK 会输出 track event 开头的事件数据
  • 埋点事件触发失败时,SDK 会输出相应的错误原因
  • 事件数据上报成功时,SDK 会输出 valid message 字段开头的事件数据
  • 事件数据上报失败时,SDK 会输出 invalid message 字段开头的事件数据并输出错误原因
上一个
集成文档(Flutter)
下一个
Flutter 全埋点
最近修改: 2025-03-11