Flutter SDK

针对于SDK 3.0 上的flutter插件,当前仅支持埋点sdk。

源码托管在 growingio/flutter-growingio-sdk-tracker-plugin

请下拉CDP分支,而不是master分支进行测试

添加依赖

以工程flutter_app为例,在pubspec.yaml文件中添加依赖

dependencies:
growingio_sdk_tracker_plugin:
git:
ref: CDP
url: https://github.com/growingio/flutter-growingio-sdk-tracker-plugin.git

然后执行 flutter pub get 指令

部分用户无法访问github.com,从而无法下拉插件库的情况,可以修改域名为hub.fastgit.org,即可解决

iOS 工程配置

sdk需要初始化操作,否则会异常退出

AppDelegate文件中添加初始化sdk代码,例如如下所示:

#import "AppDelegate.h"
#import "GeneratedPluginRegistrant.h"
#import "GrowingTracker.h"
#import "GrowingTrackConfiguration.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
GrowingTrackConfiguration *configuration = [GrowingTrackConfiguration configurationWithProjectId:@"0a1b4118dd954ec3bcc69da5138bdb96"];
configuration.dataSourceId = @"cdpDataSourceId";
configuration.debugEnabled = YES;
[GrowingTracker startWithConfiguration:configuration launchOptions:launchOptions];
[GeneratedPluginRegistrant registerWithRegistry:self];
// Override point for customization after application launch.
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
@end

使用Xcode,选择Targets->Info->URL Types配置好相关的url scheme

Android工程配置

  1. 新建一个MyApplication继承自FlutterApplication

package com.example.growingio_sdk_tracker_plugin_example;
import com.growingio.android.sdk.track.CdpTrackConfiguration;
import com.growingio.android.sdk.track.GrowingTracker;
import io.flutter.app.FlutterApplication;
public class MyApplication extends FlutterApplication {
private static CdpTrackConfiguration sConfiguration;
@Override
public void onCreate() {
super.onCreate();
if (sConfiguration == null) {
sConfiguration = new CdpTrackConfiguration("bfc5d6a3693a110d", "growing.d80871b41ef40518")
.setDataSourceId("cdpDataSourceId")
.setDebugEnabled(true);
}
GrowingTracker.startWithConfiguration(this, sConfiguration);
}
}

2. 修改 AndroidManifest.xml文件中android:name字段

<application
android:name="com.example.growingio_sdk_tracker_plugin_example.MyApplication" //修改这里
...

3. 在app下的build.gradle添加配置参数

android {
compileSdkVersion 29
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.flutter_app"
minSdkVersion 17 //提示:这里可能版本小于17,修改为17可以避免报错
targetSdkVersion 29
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
resValue("string", "growingio_project_id", "9926fc6c1189e2fb") //这里是您的工程id
resValue("string", "growingio_url_scheme", "growing.da7e6c2879469314") //这里是您的url scheme

4. 在app下的build.gradle中添加 GrowingIO Tracker SDK

dependencies {
implementation 'com.growingio.android:tracker-cdp:latest.release' //可以指定您需要的版本 >3.0.0
}

之后,运行app,即可进行正常埋点。

API说明

是否采集数据

GrowingTracker.setDataCollectionEnabled(enabled)

参数说明

参数名

类型

必填

默认值

说明

enabled

boolean

undefine

是否采集数据

代码示例

GrowingTracker.setDataCollectionEnabled(true);

设置登录用户ID

GrowingTracker.setLoginUserId(userId)

当用户登录之后调用setLoginUserId API,设置登录用户ID

参数说明

参数名

类型

必填

默认值

说明

userId

tring

undefine

设置登录用户标识

代码示例

GrowingTracker.setLoginUserId('loginUserId');

清除登录用户ID

GrowingTracker.cleanLoginUserId()

当用户登出之后调用cleanLoginUserId,清除已经设置的登录用户ID

代码示例

GrowingTracker.cleanLoginUserId();

设置坐标

GrowingTracker.setLocation(latitude, longitude)

设置用户当前的地理位置,基于WGS-84坐标

参数说明

参数名

类型

必填

默认值

说明

latitude

number

undefine

设置纬度

longitude

number

undefine

设置经度

代码示例

GrowingTracker.setLocation(100.0, 100.0);

清除坐标

GrowingTracker.cleanLocation()

清除用户当前的地理位置

代码示例

GrowingTracker.cleanLocation();

获取设备标识

GrowingTracker.getDeviceId()

获取设备id,又称为匿名用户id,SDK 自动生成用来定义唯一设备。 如果没有初始化SDK 或者关闭采集开关可能返回值为null,且可能有IO操作

代码示例

GrowingTracker.getDeviceId().then(setDeviceId);

自定义事件

GrowingTracker.trackCustomEvent(eventName, attributes)

发送一个自定义事件。在添加所需要发送的事件代码之前,需要在事件管理用户界面配置事件以及事件级变量

参数说明

参数名

类型

必填

默认值

说明

eventId

String

undefine

事件名称

attributes

Map

undefine

事件属性

代码示例

GrowingTracker.trackCustomEvent('eventId');
GrowingTracker.trackCustomEvent('eventId', varible:{ key1: 'value1', key2: 'value2'

物品模型

GrowingTracker.trackCustomEvent(eventName, attributes, itemKey, itemId)

发送一个自定义事件。在添加所需要发送的事件代码之前,需要在事件管理用户界面配置事件以及事件级变量

参数说明

参数名

类型

必填

默认值

说明

eventId

String

undefine

事件名称

attributes

Map

undefine

事件属性

itemKey

String

undefine

物品模型唯一标识属性

itemId

String

undefine

物品模型唯一标识属性的值

代码示例

GrowingTracker.trackCustomEventItemKeyId('eventID', 'testItemKey', 'testItemId');
GrowingTracker.trackCustomEventItemKeyId('eventID', 'testItemKey', 'testItemId',varible:{ key1: 'value1', key2: 'value2'

设置登录用户属性

GrowingTracker.setLoginUserAttributes(attributes)

以登录用户的身份定义用户属性变量,用于用户信息相关分析

参数说明

参数名

类型

必填

默认值

说明

attributes

Map

undefine

登录用户属性

代码示例

GrowingTracker.setLoginUserAttributes({ key1: 'value1', key2: 'value2',});