Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b375c8d

Browse files
author
梁登科
committed
Remove Android原生接入部分, 改为跳转官网接入
1 parent f2b9977 commit b375c8d

File tree

4 files changed

+86
-118
lines changed

4 files changed

+86
-118
lines changed

‎README.md‎

Lines changed: 74 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -6,108 +6,77 @@ GrowingIO的埋点版本flutter插件.
66

77
# 一: 集成
88
## 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-)文档获取安装
1010

1111
## 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)接入集成.
1213

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项目.
10815

10916
## 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+
11180

11281
# 二: API
11382

@@ -119,11 +88,11 @@ GrowingIO的SDK需要在Application的onCreate中初始化:
11988

12089
1. track发送自定义事件, 对应于cstm事件
12190

122-
| 参数 | 是否必填 | 说明 |
123-
|----------|----------|----------------|
124-
| eventId || 事件Id |
125-
| num || 数值, double型 |
126-
| variable || 变量, Map型 |
91+
| 参数 | 是否必填 | 说明 |
92+
|----------|----------|----------------|
93+
| eventId || 事件Id |
94+
| num || 数值, double型 |
95+
| variable || 变量, Map型 |
12796

12897
调用示例:
12998

@@ -155,9 +124,9 @@ GrowingIO的SDK需要在Application的onCreate中初始化:
155124

156125
4. setUserId设置登录用户Id, 对应于cs1字段
157126

158-
| 参数 | 类型 | 描述 |
159-
| ----- | ------ | ----- |
160-
| userId | String | 登录用户Id |
127+
| 参数 | 类型 | 描述 |
128+
| ----- | ------ | ----- |
129+
| userId | String | 登录用户Id |
161130

162131
函数原型: setUserId(String userId)
163132

‎flutter_growingio_track.iml‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,5 @@
1515
<orderEntry type="sourceFolder" forTests="false" />
1616
<orderEntry type="library" name="Dart SDK" level="project" />
1717
<orderEntry type="library" name="Flutter Plugins" level="project" />
18-
<orderEntry type="library" name="Dart Packages" level="project" />
1918
</component>
2019
</module>

‎lib/flutter_growingio_track.dart‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,35 @@ class GrowingIO {
66
static const MethodChannel _channel =
77
const MethodChannel('flutter_growingio_track');
88

9-
10-
staticFuture<Null> track(String eventId, {double num, Map<String, dynamic> variable}) async{
9+
staticFuture<Null> track(String eventId,
10+
{double num, Map<String, dynamic> variable}) async{
1111
Map<String, dynamic> args = {"eventId": eventId};
12-
if(num != null){
12+
if(num != null){
1313
args['num'] = num;
1414
}
15-
if(variable != null){
15+
if(variable != null){
1616
args['variable'] = variable;
1717
}
1818
return await _channel.invokeMethod("track", args);
1919
}
2020

21-
static Future<Null> setEvar(Map<String, dynamic> variable) async{
21+
static Future<Null> setEvar(Map<String, dynamic> variable) async{
2222
return await _channel.invokeMethod("setEvar", variable);
2323
}
2424

25-
static Future<Null> setPeopleVariable(Map<String, dynamic> variable) async{
25+
static Future<Null> setPeopleVariable(Map<String, dynamic> variable) async{
2626
return await _channel.invokeMethod("setPeopleVariable", variable);
2727
}
2828

29-
static Future<Null> setUserId(String userId) async{
29+
static Future<Null> setUserId(String userId) async{
3030
return await _channel.invokeMethod("setUserId", {"userId": userId});
3131
}
3232

33-
static Future<Null> clearUserId() async{
33+
static Future<Null> clearUserId() async{
3434
return await _channel.invokeMethod("clearUserId");
3535
}
3636

37-
static Future<Null> setVisitor(Map<String, dynamic> variable) async{
37+
static Future<Null> setVisitor(Map<String, dynamic> variable) async{
3838
return await _channel.invokeMethod("setVisitor", variable);
3939
}
4040
}

‎pubspec.yaml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
name: flutter_growingio_track
2-
description: Flutter Plugin For GrowingIO track
3-
version: 0.0.1
2+
description: Flutter Plugin For GrowingIO SDK, is used for calling GrowingIO api in flutter.
3+
version: 0.0.3
44
author: ldk <ldkxingzhe@gmail.com>
5-
homepage: https://www.growingio.com
5+
homepage: https://github.com/growingio/flutter-growingio-track
66

77
environment:
88
sdk: ">=2.0.0-dev.68.0 <3.0.0"

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /