Flutter 全埋点
|
收藏
- 需 Flutter 插件版本 >= v3.0.1
1. 集成 Flutter 插件
首先,需要集成 Flutter 插件,具体集成步骤请参考:Flutter 插件集成
2. 全埋点
2.1. 全埋点支持范围
神策 Flutter 全埋点支持下面几种类型的全埋点:
enum SAAutoTrackType {
APP_START,
APP_END,
APP_VIEW_SCREEN,
APP_CLICK
}
CODE
类型 | 描述 | 备注 |
---|---|---|
APP_START | App 启动事件 | 只有 iOS、Android 平台才会采集 |
APP_END | App 退出事件 | 只有 iOS、Android 平台才会采集 |
APP_VIEW_SCREEN | 页面浏览事件 | 页面浏览事件,目前支持 Navigator Route 方式的页面操作 |
APP_CLICK | 元素点击事件 | 目前支持以下组件:
|
2.2. 开启全埋点
开启全埋点,需要在 Flutter 插件初始化的时候,设置 autoTrackTypes,示例代码如下:
import 'package:sensors_analytics_flutter_plugin/sensors_analytics_flutter_plugin.dart';
...
@override
void initState() {
//初始化 SDK
SensorsAnalyticsFlutterPlugin.init(
serverUrl: "<#数据接收地址#>",
enableLog: true,
autoTrackTypes: <SAAutoTrackType> {
SAAutoTrackType.APP_START, //App 启动
SAAutoTrackType.APP_VIEW_SCREEN, //页面浏览
SAAutoTrackType.APP_CLICK, //元素点击
SAAutoTrackType.APP_END //App 退出
}
...);
super.initState();
}
CODE
- 初始化相关的细节请参考 Flutter 插件初始化
- 为了首页能正确采集页面浏览,请在 App 的 initState () 中初始化 SDK,并且在 super.initState() 调用前,否则的话首页的页面浏览可能采集不到
同时,需要在 MaterialApp 中配置 SANavigatorObserver,示例代码如下:
import 'package:sensors_analytics_flutter_plugin/sensors_analytics_flutter_plugin.dart';
...
@override
Widget build(BuildContext context) {
return MaterialApp(
navigatorObservers: SANavigatorObserver.wrap([#your NavigatorObservers#]), //如果自身有 navigatorObservers,请放在 wrap 中,如果没有,可以为空数组
...
);
}
CODE
2.3. 页面浏览
2.3.1. 开启页面浏览
要开启页面浏览,首先需要在初始化 SDK 传入的 autoTrackTypes 中包含 SAAutoTrackType.APP_VIEW_SCREEN。
2.3.2. 页面属性配置
神策 SDK 支持给某个页面添加自定义属性,提供 SAAutoTrackPageConfig 来配置。
SAAutoTrackPageConfig
参数 | 类型 | 说明 | 备注 |
---|---|---|---|
title | String | 设置页面的标题 | 可以不设置,默认采集 AppBar 的 title |
screenName | String | 设置页面的名字 | 可以不设置,默认采集 page widget 的 class |
properties | Map | 设置页面的自定义属性 | 可以不设置,设置后,触发页面浏览时会添加此属性 |
ignore | bool | 是否忽略该页面采集 | 可以不设置,默认值为 false |
需要在初始化 SDK 的时候传入 autoTrackConfig 参数中,示例代码如下:
SensorsAnalyticsFlutterPlugin.init(
serverUrl: "<#数据接收地址#>",
enableLog: true,
autoTrackTypes: <SAAutoTrackType> {
SAAutoTrackType.APP_START, //App 启动
SAAutoTrackType.APP_VIEW_SCREEN, //开启页面浏览
SAAutoTrackType.APP_CLICK, //元素点击
SAAutoTrackType.APP_END //App 退出
},
...
autoTrackConfig: SAAutoTrackConfig(pageConfigs: [
SAAutoTrackPageConfig<your page widget class>(title: '自定义页面标题', screenName: '自定义页面名字', properties: {'page': 'home'}, ignore: false)])
);
CODE
2.3.3. 忽略页面的页面浏览
神策 SDK 提供在初始化 SDK 时传入 SAAutoTrackPageConfig
来设置是否忽略某个页面的页面浏览,示例代码如下:
SensorsAnalyticsFlutterPlugin.init(
serverUrl: "<#数据接收地址#>",
...
autoTrackConfig: SAAutoTrackConfig(pageConfigs: [
SAAutoTrackPageConfig<Home>(title: '首页', screenName: 'Home', properties: {'page': 'home'}, ignore: true)]) //忽略 Home 页的页面浏览
);
CODE
2.4. 元素点击
2.4.1. 开启元素点击
要开启元素点击,需要在初始化 SDK 传入的 autoTrackTypes 中包含 SAAutoTrackType.APP_CLICK。
2.4.2. 添加元素点击的自定义属性
神策 SDK 提供 SAElementKey 来设置某个组件点击的自定义属性,示例代码如下:
ListTile(
key: SAElementKey('your custom key', properties: {'key1': 'value1'}), //设置 properties 来传入自定义属性
title: Text('Test'),
...
),
CODE
2.4.3. 忽略组件的元素点击
神策 SDK 提供 SAElementKey 来设置是否忽略某个组件的点击,示例代码如下:
ListTile(
key: SAElementKey('your custom key', isIgnore: true),
title: Text('Test'),
...
),
CODE
注:本文档内容为神策产品使用和技术细节说明文档,不包含适销类条款;具体企业采购产品和技术服务内容,以商业采购合同为准。