• 需 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
元素点击事件

目前支持以下组件:

  • ListTitle
  • ElevateButton
  • InkWell
  • GestureDetector


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
screenNameString设置页面的名字可以不设置,默认采集 page widget 的 class
propertiesMap设置页面的自定义属性可以不设置,设置后,触发页面浏览时会添加此属性
ignorebool是否忽略该页面采集可以不设置,默认值为 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