npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-native-growing-cdp

v1.0.0

Published

Growing CDP for React Native

Downloads

1

Readme

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 :

import com.facebook.react.ReactPackage;
import com.growingio.android.plugin.rn.GrowingIOPackage;
import com.growingio.android.sdk.collection.Configuration;
import com.growingio.android.sdk.collection.GrowingIO;

public class MainApplication extends Application implements ReactApplication {

  public List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
	  
        //*1. 此处加入GrowingIO Package
          new GrowingIOPackage()
    );
  }

  @Override
  public void onCreate() {
    super.onCreate();
    
      //*2. 在 onCreate 方法中初始化 GIO SDK(别忘记上一步,添加 GrowingIOPackage)
      GrowingIO.startWithConfiguration(this, new Configuration()
                      .setProjectId("您的项目ID")
                      .setURLScheme("您的 URL Scheme")
                      .setDataSourceId("您的数据源ID")
                      .setTestMode(BuildConfig.DEBUG)
                      .setDebugMode(BuildConfig.DEBUG)
                      .setTrackerHost("您的 Host 配置")
                      .setChannel("XXX应用商店")
      );
  }
}
3.添加应用权限

编辑文件 android/app/src/main/AndroidManifest.xml

将以下权限添加到你的 AndroidManifest.xml 中,其中 READ_PHONE_STATE 权限是可选的,需要用户主动申请,如果没有此权限将不能自动采集 imei 信息

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.cdpdemo">

    <!--    GIO 需要的权限  -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!--    GIO 需要的权限  -->
       
</manifest>
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 集成步骤

  1. iOS 需要手动在工程中添加 URL Scheme, 这个 URL Scheme 是创建应用时生成的

iOS URL Scheme

  1. 如果没有执行 react-native link react-native-growing-cdp ,需要在原生工程的Podfile文件中添加 pod 'RNGrowingCdp', :path => '../node_modules/react-native-growing-cdp' pod install

  2. 初始化SDK

在iOS原生工程的 AppDelegate 文件 引入头文件 #import <RNGrowingCdp.h>。在 didFinishLaunchingWithOptions 方法中初识SDK,设置相应初始化配置。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  
  [RNGrowingCdp startWithProjectId:@"YOUR_PROJECT_ID" dataSourceId:@"YOUR_DATASOURCE_ID"];
  [RNGrowingCdp setEnableDebugMode:YES];
  
//  [RNGrowingCdp setTrackerHost:@"http://www.growingio.com"];
// [RNGrowingCdp setFlushInterval:10];
//  [RNGrowingCdp setDailyDataLimit:10]; // setting 10KB data limit
  
  return YES;
}

2 获取SDK版本

2.1 NativeModules.GrowingCDP.sdkVersion

获取SDK版本信息

2.2 参数说明

参数名|类型|必填|默认值|说明 :---:|:---:|:---:|:---:|:---: 无|无|无|无|获取SDK版本信息

2.3 代码示例

NativeModules.GrowingCDP.sdkVersion()

3 设置 GDPR 生效

3.1 NativeModules.GrowingCDP.disableDataCollect()

欧盟通用数据保护条例(GDPR),旨在协调整个欧洲的数据隐私法律,保护所有欧盟公民的数据隐私

3.2 参数说明

参数名|类型|必填|默认值|说明 :---:|:---:|:---:|:---:|:---: 无|无|无|无| 设置 GDPR 生效

3.3 代码示例

NativeModules.GrowingCDP.disableDataCollect()

4 设置 GDPR 失效

4.1 NativeModules.GrowingCDP.enableDataCollect()

欧盟通用数据保护条例(GDPR),旨在协调整个欧洲的数据隐私法律,保护所有欧盟公民的数据隐私

4.2 参数说明

参数名|类型|必填|默认值|说明 :---:|:---:|:---:|:---:|:---: 无|无|无|无| 设置 GDPR 失效

4.3 代码示例

NativeModules.GrowingCDP.enableDataCollect()

5 设置 userId

5.1 NativeModules.GrowingCDP.setUserId("YOUR_USER_ID")

登陆用户ID, ID为正常英文数字组合的字符串, 长度<=1000, 请不要含有 "'|*&$@/', 等特殊字符

5.2 参数说明

参数名|类型|必填|默认值|说明 :---:|:---:|:---:|:---:|:---: userId|string|是|无| 设置登录用户 userId 不允许传空或者nil, 如有此操作请调用clearUserId函数

5.3 代码示例

NativeModules.GrowingCDP.setUserId("userId")

6 清除 userId

6.1 NativeModules.GrowingCDP.clearUserId()

清除登录用户ID

6.2 参数说明

参数名|类型|必填|默认值|说明 :---:|:---:|:---:|:---:|:---: 无|无|无|无| 清除登录用户ID

6.3 代码示例

NativeModules.GrowingCDP.clearUserId()

7 设置经纬度

7.1 NativeModules.GrowingCDP.setGeoLocation(0.0, 0.0)

设置经纬度,并在 vst 事件中发送,Android SDK 暂时没办法自动获取GPS数据,如果您要采集GPS数据,需要在您的App每次获取完GPS数据之后,通过该API告知 SDK。如果您不设置,我们默认使用用户IP的Location

7.2 参数说明

参数名|类型|必填|默认值|说明 :---:|:---:|:---:|:---:|:---: lat|double|是|无| 经度 lng|double|是|无| 纬度

7.3 代码示例

NativeModules.GrowingCDP.setGeoLocation(0.0, 0.0)

8 清空经纬度

8.1 NativeModules.GrowingCDP.clearGeoLocation()

清空经纬度

8.2 参数说明

参数名|类型|必填|默认值|说明 :---:|:---:|:---:|:---:|:---: 无|无|无|无| 清空经纬度

8.3 代码示例

NativeModules.GrowingCDP.clearGeoLocation()

9 发送自定义事件

9.1 NativeModules.GrowingCDP.track("YOUR_EVENT_ID", {"greet": "hello GrowingIO"})

发送自定义事件

9.2 参数说明

参数名|类型|必填|默认值|说明 :---:|:---:|:---:|:---:|:---: eventId|string|是|无| 事件Id, Id为正常英文数字组合的字符串, 长度<=1000, 请不要含有 '*&$@/', 等特殊字符 variable|object|是|无| 事件发生时所伴随的维度信息,限制:不能为 nil;variable 内部不允许含有JSONObject或者JSONArray;

9.3 代码示例

NativeModules.GrowingCDP.track("onHomeButonClicked", {"greet": "hello GrwoingIO"})

10 发送自定义的用户事件

10.1 NativeModules.GrowingCDP.setUserAttributes({"greet": "hello GrowingIO"})

发送一个自定义的用户事件

10.2 参数说明

参数名|类型|必填|默认值|说明 :---:|:---:|:---:|:---:|:---: eventId|string|是|无| 事件Id, Id为正常英文数字组合的字符串, 长度<=1000, 请不要含有 '*&$@/', 等特殊字符

10.3 代码示例

NativeModules.GrowingCDP.setUserAttributes({"name": "GrowingIO", "title": "Senior Engineer"})

11 获取当前设备 ID

11.1 NativeModules.GrowingCDP.getDeviceId()

获取当前设备 ID

11.2 参数说明

参数名|类型|必填|默认值|说明 :---:|:---:|:---:|:---:|:---: 无|无|无|无| 获取当前设备 ID

11.3 代码示例

NativeModules.GrowingCDP.getDeviceId()

12 获取当前访问用户 ID

11.1 NativeModules.GrowingCDP.getVisitUserId()

获取当前访问用户 ID

11.2 参数说明

参数名|类型|必填|默认值|说明 :---:|:---:|:---:|:---:|:---: 无|无|无|无| 获取当前访问用户 ID

11.3 代码示例

NativeModules.GrowingCDP.getVisitUserId()

13 获取当前访问 ID

13.1 NativeModules.GrowingCDP.getSessionId()

获取当前访问 ID

13.2 参数说明

参数名|类型|必填|默认值|说明 :---:|:---:|:---:|:---:|:---: 无|无|无|无| 获取当前访问 ID

13.3 代码示例

NativeModules.GrowingCDP.getSessionId()