集成神策分析 SDK Flutter 插件
引入插件
在 Flutter 项目的 pubspec.yaml 文件中 dependencies 里面添加 sensors_analytics_flutter_plugin 依赖。
dependencies:
# 添加神策 flutter plugin
sensors_analytics_flutter_plugin: ^3.0.1
执行 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。步骤如下:
- 下载神策 sensorsdata.min.js,并放入到 Flutter 项目的 web 目录下。

-
在 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 端国密加密
- 下载 sensorsdata.plugin.sm.js,并放在项目 web 目录下
- 在 web/index.html 文件的 head 标签里引入 sensorsdata.plugin.sm.js
- 在初始化里配置 encrypt: true,然后传入 web 国密参数如下:
web: WebConfig( publicKey: 'xxx', pkv: 'xxx' )
|
globalProperties |
Map? |
配置全局公共属性 |
其优先级低于静态公共属性 |
- 若 App 有合规需求,可参考 合规说明
- 以上是在 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 字段开头的事件数据并输出错误原因