- 需 Flutter 插件版本 >= v3.0.1
- 支持 HarmonyOS 全埋点,需 Flutter 插件 v4.2.0 及以上,且神策分析 HamonyOS SDK 0.5.0 及以上
集成 Flutter 插件
首先,需要集成 Flutter 插件,具体集成步骤请参考:Flutter 插件集成
全埋点
全埋点支持范围
神策 Flutter 全埋点支持下面几种类型的全埋点:
enum SAAutoTrackType {
  APP_START,
  APP_END,
  APP_VIEW_SCREEN,
  APP_CLICK
}
 
| 类型 | 描述 | 备注 | 
| APP_START | App 启动事件 | HarmonyOS 只采集冷启动 | 
| APP_END | App 退出事件 | HarmonyOS 只采集 App Kill 的退出 | 
| APP_VIEW_SCREEN | 页面浏览事件 | 页面浏览事件,目前支持 Navigator Route 方式的页面操作 | 
| APP_CLICK | 元素点击事件 | 目前支持以下组件: 
ListTitleElevateButtonInkWellGestureDetector | 
 
开启全埋点
开启全埋点,需要在 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();
}
 
- 初始化相关的细节请参考 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 中,如果没有,可以为空数组
      ...
    );
}
 
 
 
 
页面浏览
开启页面浏览
要开启页面浏览,首先需要在初始化 SDK 传入的 autoTrackTypes 中包含 SAAutoTrackType.APP_VIEW_SCREEN。
页面属性配置
神策 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)])
);
 
忽略页面的页面浏览
神策 SDK 提供在初始化 SDK 时传入 SAAutoTrackPageConfig 来设置是否忽略某个页面的页面浏览,示例代码如下:
SensorsAnalyticsFlutterPlugin.init(
    serverUrl: "<#数据接收地址#>",
    ...
    autoTrackConfig: SAAutoTrackConfig(pageConfigs: [
        SAAutoTrackPageConfig<Home>(title: '首页', screenName: 'Home', properties: {'page': 'home'}, ignore: true)]) //忽略 Home 页的页面浏览
);
 
元素点击
开启元素点击
要开启元素点击,需要在初始化 SDK 传入的 autoTrackTypes 中包含 SAAutoTrackType.APP_CLICK。
添加元素点击的自定义属性
神策 SDK 提供 SAElementKey 来设置某个组件点击的自定义属性,示例代码如下:
ListTile(
    key: SAElementKey('your custom key', properties: {'key1': 'value1'}), //设置 properties 来传入自定义属性
    title: Text('Test'),
    ...
),
 
忽略组件的元素点击
神策 SDK 提供 SAElementKey 来设置是否忽略某个组件的点击,示例代码如下:
ListTile(
    key: SAElementKey('your custom key', isIgnore: true),
    title: Text('Test'),
    ...
),