@@ -6,108 +6,77 @@ GrowingIO的埋点版本flutter插件.
6
6
7
7
# 一: 集成
8
8
## 1. Flutter插件获取安装
9
- 根据[ dart pub] ( https://pub.dartlang.org/packages/flutter_growingio_track#-installing-tab- ) 文档获取安装
9
+ 根据[ dart pub] ( https://pub.dartlang.org/packages/flutter_growingio_track#-installing-tab- ) 文档获取安装
10
10
11
11
## 2. Android集成(Native部分)
12
+ 此Flutter插件运行在Android手机上时依赖于GrowingIO Android SDK(可以是无埋点SDK也可以是埋点SDK)2.6.0及以上, 原生部分请参考[ Android官方文档集成SDK部分(无埋点)] ( https://docs.growingio.com/docs/sdk-integration/android-sdk/#ji-cheng-sdk ) 或 [ Android官方文档集成SDK部分(埋点)] ( https://docs.growingio.com/docs/sdk-integration/android-sdk/android-maidian-sdk ) 接入集成.
12
13
13
- 此Flutter插件可支持track版本与auto-track版本的GrowingIO SDK使用, 请根据需要自行选择搭配
14
-
15
- ### 1.1 添加Android依赖
16
- #### 依赖纯打点版本
17
- 纯打点版本(track)版本, 需要依赖track版本的SDK
18
-
19
- dependencies{
20
- implementation 'com.growingio.android:vds-android-agent:track-2.6.0'
21
- }
22
-
23
- ### 1.2 无埋点版本
24
- 无埋点版本(auto-track)版本, 需要依赖于auto-track版本的SDK并且需要配置Gradle插件
25
-
26
- * 配置ClassPath:*
27
-
28
- buildscript {
29
- repositories {
30
- jcenter()
31
- google()
32
- }
33
- dependencies {
34
- //gradle建议版本
35
- classpath 'com.android.tools.build:gradle:3.1.3'
36
- classpath 'com.growingio.android:vds-gradle-plugin:autotrack-2.6.0'
37
- }
38
- }
39
-
40
- * 使用插件:*
41
-
42
- apply plugin: 'com.android.application'
43
- //添加插件
44
- apply plugin: 'com.growingio.android'
45
-
46
- dependencies {
47
- compile 'com.growingio.android:vds-android-agent:autotrack-2.6.0@aar'
48
- }
49
-
50
- ### 2. 获取projectId与UrlScheme
51
-
52
- 在GrowingIO官网应用管理创建Android应用, 跳转界面后可以发现包含projectId与UrlSchema的代码片段, 请粘贴到项目对应位置:
53
-
54
- android {
55
- defaultConfig {
56
- // xxxx
57
- resValue("string", "growingio_project_id", "9926fc6c1189e2fb")
58
- resValue("string", "growingio_url_scheme", "growing.da7e6c2879469314")
59
- // xxxx
60
- }
61
- }
62
-
63
- 另外为了可以从浏览器直接跳转App, 需要在Manifest中配置UrlSchema
64
-
65
- <intent-filter>
66
- <data android:scheme="growing.da7e6c2879469314"/>
67
- <action android:name="android.intent.action.VIEW" />
68
-
69
- <category android:name="android.intent.category.DEFAULT" />
70
- <category android:name="android.intent.category.BROWSABLE" />
71
- </intent-filter>
72
-
73
- 同时也需要配置权限(比如网络权限)
74
-
75
- <uses-permission android:name="android.permission.INTERNET" />
76
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
77
- <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
78
-
79
- 具体配置请参见项目的example配置
80
-
81
-
82
- ### 3. 初始化SDK
83
-
84
- GrowingIO的SDK需要在Application的onCreate中初始化:
85
-
86
- GrowingIO.startWithConfiguration( this,
87
- new Configuration()
88
- .setChannel("渠道名")
89
- .setRnMode(true) // 这个必须设置
90
- .setDebugMode(true) // 显示日志, release环境请关闭
91
- .setTestMode(true)); // 即时发送, release环境请关闭
92
-
93
- 如果flutter项目没有自定义Application, 需要用户自己手动添加一个AndroidApplication, 可参照example
94
-
95
-
96
- ### 4. tip
97
-
98
- 1 . 为什么Android项目里面高亮GrowingIO的类会出现报红色
99
-
100
- 这个应该是Flutter项目结构问题,不过并不影响运行, 可以放心编译
101
-
102
- 2 . 为什么不在flutter中初始化:
103
-
104
- - 因为GrowingIO需要获取Android的Activity生命周期, 为了数据的准确性, 需要在Activity出现前就初始化完成
105
- - 开发者相信很多用户都会使用flutter + native形式的进行开发, 为了同时服务flutter于native
106
-
107
-
14
+ 可以参考仓库中的example项目.
108
15
109
16
## 3. iOS集成(Native部分)
110
- 集成方式见Word文档:Flutter-iOS集成文档
17
+ ### 3.1 选择集成方式
18
+ ### 3.2 设置URL Scheme
19
+ #### 3.2.1 获取URL Scheme
20
+ - 添加新产品:登录官网 -> 点击项目选择框 -> 点击“项目管理” -> 点击“应用管理” -> 点击“新建应用”->选择添加 iOS 应用 -> 填写“应用名称“,点击下一步 ->在第二段中标黄字体。
21
+ - 现有产品:登录官网 -> 点击项目选择框 -> 点击“项目管理” -> 点击“应用管理” -> 找到对应产品的 URL Scheme
22
+
23
+ #### 3.2.2 添加 URL Scheme(growing.xxxxxxxxxxxxxxxx)到项目中
24
+ #### 3.2.3 添加依赖, 在项目中添加以下库文件:
25
+
26
+ | 库名称 | 类型 |
27
+ | ----- | ------ |
28
+ | Foundation.framework | 基础依赖库 |
29
+ | Security.framework | 用于SSL连接 |
30
+ | CoreTelephony.framework | 用于读取运营商名称 |
31
+ | SystemConfiguration.framework | 用于判断网络状态 |
32
+ | AdSupport.framework | 用于来源管理激活匹配 |
33
+ | libicucore.tbd | 用于WebSocket |
34
+ | ibsqlite3.tbd | 存储日志 |
35
+ | CoreLocation.framework | 用于读取地理位置信息(如果您的app有权限) |
36
+
37
+ 添加完成以后, 库的引用如下: 提醒:
38
+
39
+ (optional) GrowingIO推荐您添加AdSupport.framework依赖库,用于来源管理激活匹配,有利于您更好的分析的数据
40
+ - 添加项目依赖库的位置在项目设置target -> 选项卡General -> Linked Frameworks and Libraries
41
+
42
+ #### 3.2.4 添加编译参数
43
+ 略
44
+
45
+ ### 3.3 初始化SDK
46
+ 在 AppDelegate 中引入#import "Growing.h"并添加启动方法
47
+
48
+ #import "Growing.h"
49
+ - (BOOL)application:(UIApplication *)application
50
+ didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
51
+ ...
52
+ // 启动GrowingIO
53
+ [Growing startWithAccountId:@"xxxxxxxxxxxxxxxx"]; //替换为您的ID
54
+ // 其他配置
55
+ // 开启Growing调试日志 可以开启日志
56
+ // [Growing setEnableLog:YES];
57
+ }
58
+
59
+ 请确保将代码添加在上面描述的位置,添加到其他函数中或者异步 block 中可能导致数据不准确!
60
+
61
+ 至此,您的SDK安装就成功了。登录 GrowingIO 进入产品安装页面执行“数据检测”,几分钟后就可以看到数据了。
62
+
63
+ ## 4. Tips
64
+ #### 4.1 IOS: App Store 提交应用
65
+ 如果您添加了库AdSupport.framework, GrowingIO则会启用 IDFA,所以在向 App Store 提交应用时,需要:
66
+ - 对于问题 Does this app use the Advertising Identifier (IDFA),选择 YES。
67
+ - 对于选项Attribute this app installation to a previously served advertisement,打勾。
68
+ - 对于选项Attribute an action taken within this app to a previously served advertisement,打勾。
69
+
70
+ #### 4.2 IOS: 为什么 GrowingIO使用IDFA
71
+ GrowingIO 使用 IDFA 来做来源管理激活设备的精确匹配,让你更好的衡量广告效果。如果你不希望跟踪这个信息,可以选择不引入 AdSupport.framework
72
+
73
+ #### 4.3 Android: 初始化Android SDK时, GrowingIO类可能会报红色
74
+ 这个应该是Flutter项目结构的问题, 并不影响运行, 可以放心编译. 不过需要手动import-_ -|
75
+
76
+ #### 4.4 为什么不在flutter中单独初始化
77
+ - 因为GrowingIO需要获取Android的Activity生命周期, 为了数据的准确性, 需要在Activity出现前就初始化完成
78
+ - 开发者相信很多用户都会使用flutter + native形式的进行开发, 为了同时服务flutter于native
79
+
111
80
112
81
# 二: API
113
82
@@ -119,11 +88,11 @@ GrowingIO的SDK需要在Application的onCreate中初始化:
119
88
120
89
1 . track发送自定义事件, 对应于cstm事件
121
90
122
- | 参数 | 是否必填 | 说明 |
123
- | ----------| ----------| ----------------|
124
- | eventId | 是 | 事件Id |
125
- | num | 否 | 数值, double型 |
126
- | variable | 否 | 变量, Map型 |
91
+ | 参数 | 是否必填 | 说明 |
92
+ | ----------| ----------| ----------------|
93
+ | eventId | 是 | 事件Id |
94
+ | num | 否 | 数值, double型 |
95
+ | variable | 否 | 变量, Map型 |
127
96
128
97
调用示例:
129
98
@@ -155,9 +124,9 @@ GrowingIO的SDK需要在Application的onCreate中初始化:
155
124
156
125
4 . setUserId设置登录用户Id, 对应于cs1字段
157
126
158
- | 参数 | 类型 | 描述 |
159
- | ----- | ------ | ----- |
160
- | userId | String | 登录用户Id |
127
+ | 参数 | 类型 | 描述 |
128
+ | ----- | ------ | ----- |
129
+ | userId | String | 登录用户Id |
161
130
162
131
函数原型: setUserId(String userId)
163
132
0 commit comments