react-native-growing-cdp
Getting started
$ npm install react-native-growing-cdp --save
Mostly automatic installation
$ react-native link react-native-growing-cdp
Android 集成步骤
说明:
Gradle 编译环境:Android Studio
支持系统版本:Android 4.2 - 10。对Android 4.2以下的手机设备不采集数据。
1. 导入 SDK
编辑文件
app/build.gradle
添加 vds-android-agent 依赖:
android { dependencies{ implementation "com.growingio.android:vds-android-agent:RN-cdp-1.0" }}
2. 初始化 SDK
编辑文件
android/app/src/main/java/[...]/MainApplication.java
添加 SDK 初始化代码和 GrowingIOPackage :
3.添加应用权限
编辑文件
android/app/src/main/AndroidManifest.xml
将以下权限添加到你的 AndroidManifest.xml 中,其中 READ_PHONE_STATE 权限是可选的,需要用户主动申请,如果没有此权限将不能自动采集 imei 信息
<!-- GIO 需要的权限 --> <!-- GIO 需要的权限 -->
4.添加混淆文件
如果你启用了混淆,请在你的 proguard-rules.pro 中加入如下代码:
# GrowingIO 混淆文件
-keep class com.growingio.** {
*;
}
-dontwarn com.growingio.**
-keepnames class * extends android.view.View
-keepnames class * extends android.app.Fragment
-keepnames class * extends android.support.v4.app.Fragment
-keepnames class * extends androidx.fragment.app.Fragment
-keep class android.support.v4.view.ViewPager{
*;
}
-keep class android.support.v4.view.ViewPager$**{
*;
}
-keep class androidx.viewpager.widget.ViewPager{
*;
}
-keep class androidx.viewpager.widget.ViewPager$**{
*;
}
API 说明
1 初始化配置
Android 初始化配置API说明
初始化配置 API 在 Application 中初始化 GIO SDK 出使用。
API | 默认值 | 是否必填 | 说明 |
---|---|---|---|
setProjectId | 无 | 是 | 设置 Project ID |
setDataSourceId | 无 | 是 | 设置数据源 ID ;不同的部门看不同的数据,是企业数据平台的最基础的功能需求为了实现这个功能,计划在CDP产品中增加数据源ID的概念,每个事件在上报的时候,都需要指定一个数据源ID后续会根据数据源ID来定义每个用户能够查看、使用哪些事件、标签的数据 |
setURLScheme | 无 | 是 | 设置 URLScheme , 是应用唯一标识 |
setDebugMode | false | 否 | 在Logcat中输出采集日志 |
setTestMode | false | 否 | 实时发送数据,开启则不遵循移动网络状态下数据发送大小默认 3M 限制以及采集数据缓存30秒发送策略。为了方便开发者查看日志,一般和setDebugMode一起使用。 |
setChannel | 无 | 否 | 设置App下载渠道 |
setImeiEnable | true | 否 | 为了海外应用市场上架应用,设置为 false 则 SDK 不采集 imei 。 |
setAndroidIdEnable | true | 否 | 为了海外应用市场上架应用,设置为 false 则 SDK 不采集 Android ID 。 |
iOS 集成步骤
- iOS 需要手动在工程中添加 URL Scheme, 这个 URL Scheme 是创建应用时生成的
-
如果没有执行
react-native link react-native-growing-cdp
,需要在原生工程的Podfile文件中添加 pod 'RNGrowingCdp', :path => '../node_modules/react-native-growing-cdp' pod install -
初始化SDK
在iOS原生工程的 AppDelegate
文件 引入头文件 #import <RNGrowingCdp.h>
。在 didFinishLaunchingWithOptions 方法中初识SDK,设置相应初始化配置。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
2 获取SDK版本
NativeModules.GrowingCDP.sdkVersion
2.1 获取SDK版本信息
2.2 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
无 | 无 | 无 | 无 | 获取SDK版本信息 |
2.3 代码示例
NativeModulesGrowingCDP
3 设置 GDPR 生效
NativeModules.GrowingCDP.disableDataCollect()
3.1 欧盟通用数据保护条例(GDPR),旨在协调整个欧洲的数据隐私法律,保护所有欧盟公民的数据隐私
3.2 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
无 | 无 | 无 | 无 | 设置 GDPR 生效 |
3.3 代码示例
NativeModulesGrowingCDP
4 设置 GDPR 失效
NativeModules.GrowingCDP.enableDataCollect()
4.1 欧盟通用数据保护条例(GDPR),旨在协调整个欧洲的数据隐私法律,保护所有欧盟公民的数据隐私
4.2 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
无 | 无 | 无 | 无 | 设置 GDPR 失效 |
4.3 代码示例
NativeModulesGrowingCDP
5 设置 userId
NativeModules.GrowingCDP.setUserId("YOUR_USER_ID")
5.1 登陆用户ID, ID为正常英文数字组合的字符串, 长度<=1000, 请不要含有 "'|*&$@/', 等特殊字符
5.2 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
userId | string | 是 | 无 | 设置登录用户 userId 不允许传空或者nil, 如有此操作请调用clearUserId函数 |
5.3 代码示例
NativeModulesGrowingCDP
6 清除 userId
NativeModules.GrowingCDP.clearUserId()
6.1 清除登录用户ID
6.2 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
无 | 无 | 无 | 无 | 清除登录用户ID |
6.3 代码示例
NativeModulesGrowingCDP
7 设置经纬度
NativeModules.GrowingCDP.setGeoLocation(0.0, 0.0)
7.1 设置经纬度,并在 vst 事件中发送,Android SDK 暂时没办法自动获取GPS数据,如果您要采集GPS数据,需要在您的App每次获取完GPS数据之后,通过该API告知 SDK。如果您不设置,我们默认使用用户IP的Location
7.2 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
lat | double | 是 | 无 | 经度 |
lng | double | 是 | 无 | 纬度 |
7.3 代码示例
NativeModulesGrowingCDP
8 清空经纬度
NativeModules.GrowingCDP.clearGeoLocation()
8.1 清空经纬度
8.2 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
无 | 无 | 无 | 无 | 清空经纬度 |
8.3 代码示例
NativeModulesGrowingCDP
9 发送自定义事件
NativeModules.GrowingCDP.track("YOUR_EVENT_ID", {"greet": "hello GrowingIO"})
9.1 发送自定义事件
9.2 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
eventId | string | 是 | 无 | 事件Id, Id为正常英文数字组合的字符串, 长度<=1000, 请不要含有 '*&$@/', 等特殊字符 |
variable | object | 是 | 无 | 事件发生时所伴随的维度信息,限制:不能为 nil;variable 内部不允许含有JSONObject或者JSONArray; |
9.3 代码示例
NativeModulesGrowingCDP
10 发送自定义的用户事件
NativeModules.GrowingCDP.setUserAttributes({"greet": "hello GrowingIO"})
10.1 发送一个自定义的用户事件
10.2 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
eventId | string | 是 | 无 | 事件Id, Id为正常英文数字组合的字符串, 长度<=1000, 请不要含有 '*&$@/', 等特殊字符 |
10.3 代码示例
NativeModulesGrowingCDP
11 获取当前设备 ID
NativeModules.GrowingCDP.getDeviceId()
11.1 获取当前设备 ID
11.2 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
无 | 无 | 无 | 无 | 获取当前设备 ID |
11.3 代码示例
NativeModulesGrowingCDP
12 获取当前访问用户 ID
NativeModules.GrowingCDP.getVisitUserId()
11.1 获取当前访问用户 ID
11.2 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
无 | 无 | 无 | 无 | 获取当前访问用户 ID |
11.3 代码示例
NativeModulesGrowingCDP
13 获取当前访问 ID
NativeModules.GrowingCDP.getSessionId()
13.1 获取当前访问 ID
13.2 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
无 | 无 | 无 | 无 | 获取当前访问 ID |
13.3 代码示例
NativeModulesGrowingCDP