针对于SDK 3.0 上的flutter插件,当前仅支持埋点sdk。
源码托管在 growingio/flutter-growingio-sdk-tracker-plugin
请下拉CDP分支,而不是master分支进行测试
以工程flutter_app
为例,在pubspec.yaml
文件中添加依赖
dependencies:growingio_sdk_tracker_plugin:git:ref: CDPurl: https://github.com/growingio/flutter-growingio-sdk-tracker-plugin.git
然后执行 flutter pub get
指令
部分用户无法访问github.com,从而无法下拉插件库的情况,可以修改域名为hub.fastgit.org,即可解决
sdk需要初始化操作,否则会异常退出
在AppDelegate
文件中添加初始化sdk代码,例如如下所示:
#import "AppDelegate.h"#import "GeneratedPluginRegistrant.h"#import "GrowingTracker.h"#import "GrowingTrackConfiguration.h"@implementation AppDelegate- (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(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
新建一个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;@Overridepublic 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
字段
<applicationandroid:name="com.example.growingio_sdk_tracker_plugin_example.MyApplication" //修改这里...
3. 在app
下的build.gradle
添加配置参数
android {compileSdkVersion 29lintOptions {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 29versionCode flutterVersionCode.toInteger()versionName flutterVersionNameresValue("string", "growingio_project_id", "9926fc6c1189e2fb") //这里是您的工程idresValue("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,即可进行正常埋点。
参数名 | 类型 | 必填 | 默认值 | 说明 |
enabled | boolean | 是 | undefine | 是否采集数据 |
GrowingTracker.setDataCollectionEnabled(true);
当用户登录之后调用setLoginUserId
API,设置登录用户ID
参数名 | 类型 | 必填 | 默认值 | 说明 |
userId | tring | 是 | undefine | 设置登录用户标识 |
GrowingTracker.setLoginUserId('loginUserId');
当用户登出之后调用cleanLoginUserId
,清除已经设置的登录用户ID
GrowingTracker.cleanLoginUserId();
设置用户当前的地理位置,基于WGS-84坐标
参数名 | 类型 | 必填 | 默认值 | 说明 |
latitude | number | 是 | undefine | 设置纬度 |
longitude | number | 是 | undefine | 设置经度 |
GrowingTracker.setLocation(100.0, 100.0);
清除用户当前的地理位置
GrowingTracker.cleanLocation();
获取设备id,又称为匿名用户id,SDK 自动生成用来定义唯一设备。 如果没有初始化SDK 或者关闭采集开关可能返回值为null,且可能有IO操作
GrowingTracker.getDeviceId().then(setDeviceId);
发送一个自定义事件。在添加所需要发送的事件代码之前,需要在事件管理用户界面配置事件以及事件级变量
参数名 | 类型 | 必填 | 默认值 | 说明 |
eventId | String | 是 | undefine | 事件名称 |
attributes | Map | 否 | undefine | 事件属性 |
GrowingTracker.trackCustomEvent('eventId');GrowingTracker.trackCustomEvent('eventId', varible:{ key1: 'value1', key2: 'value2'
发送一个自定义事件。在添加所需要发送的事件代码之前,需要在事件管理用户界面配置事件以及事件级变量
参数名 | 类型 | 必填 | 默认值 | 说明 |
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'
以登录用户的身份定义用户属性变量,用于用户信息相关分析
参数名 | 类型 | 必填 | 默认值 | 说明 |
attributes |
| 是 | undefine | 登录用户属性 |
GrowingTracker.setLoginUserAttributes({ key1: 'value1', key2: 'value2',});