Skip to content

Commit 6c93bb2

Browse files
author
yangzhankun
committed
update readme
1 parent 972f91f commit 6c93bb2

File tree

1 file changed

+1
-272
lines changed

1 file changed

+1
-272
lines changed

README.md

Lines changed: 1 addition & 272 deletions
Original file line numberDiff line numberDiff line change
@@ -16,275 +16,4 @@ react-native link @sensors.data/react-native-sensors-analytics
1616
```
1717

1818

19-
# 2. Android 端
20-
21-
## 2.1 集成神策的 gradle 插件、初始化 SDK
22-
**第一步:****project** 级别的 build.gradle 文件中添加 Sensors Analytics android-gradle-plugin 依赖:
23-
```android
24-
buildscript {
25-
repositories {
26-
jcenter()
27-
//添加 Sensors Analytics maven 库地址
28-
maven {
29-
url 'https://dl.bintray.com/zouyuhan/maven'
30-
}
31-
}
32-
dependencies {
33-
classpath 'com.android.tools.build:gradle:2.2.3'
34-
//添加神策分析 android-gradle-plugin 依赖
35-
classpath 'com.sensorsdata.analytics.android:android-gradle-plugin2:2.2.1'
36-
}
37-
}
38-
39-
allprojects {
40-
repositories {
41-
jcenter()
42-
//添加 Sensors Analytics maven 库地址
43-
maven {
44-
url 'https://dl.bintray.com/zouyuhan/maven'
45-
}
46-
}
47-
}
48-
```
49-
50-
如下示例图:
51-
![](https://www.sensorsdata.cn/manual/img/android_sdk_autotrack_1.png)
52-
53-
**第二步:****主 module** 的 build.gradle 文件中添加 com.sensorsdata.analytics.android 插件、神策分析 SDK 依赖:
54-
55-
```android
56-
apply plugin: 'com.android.application'
57-
//添加 com.sensorsdata.analytics.android 插件
58-
apply plugin: 'com.sensorsdata.analytics.android'
59-
60-
dependencies {
61-
implementation 'com.android.support:appcompat-v7:25.1.1'
62-
//添加 Sensors Analytics SDK 依赖
63-
implementation 'com.sensorsdata.analytics.android:SensorsAnalyticsSDK:2.1.2'
64-
}
65-
```
66-
SensorsAnalyticsSDK 的最新版本号请参考 [github 更新日志](https://github.com/sensorsdata/sa-sdk-android/releases)
67-
68-
如下示例图:
69-
![](https://www.sensorsdata.cn/manual/img/android_sdk_autotrack_2.png)
70-
71-
**第三步:** 在程序的入口 **Application**`onCreate()` 中调用 `SensorsDataAPI.sharedInstance()` 初始化 SDK:
72-
73-
```java
74-
public class App extends Application {
75-
76-
// debug 模式的数据接收地址 (测试,测试项目)
77-
final static String SA_SERVER_URL_DEBUG = "【测试项目】数据接收地址";
78-
79-
// release 模式的数据接收地址(发版,正式项目)
80-
final static String SA_SERVER_URL_RELEASE = "【正式项目】数据接收地址";
81-
82-
// SDK Debug 模式选项
83-
// SensorsDataAPI.DebugMode.DEBUG_OFF - 关闭 Debug 模式
84-
// SensorsDataAPI.DebugMode.DEBUG_ONLY - 打开 Debug 模式,校验数据,但不进行数据导入
85-
// SensorsDataAPI.DebugMode.DEBUG_AND_TRACK - 打开 Debug 模式,校验数据,并将数据导入到 Sensors Analytics 中
86-
// TODO 注意!请不要在正式发布的 App 中使用 DEBUG_AND_TRACK /DEBUG_ONLY 模式! 请使用 DEBUG_OFF 模式!!!
87-
88-
// debug 时,初始化 SDK 使用测试项目数据接收 URL 、使用 DEBUG_AND_TRACK 模式;release 时,初始化 SDK 使用正式项目数据接收 URL 、使用 DEBUG_OFF 模式。
89-
private boolean isDebugMode;
90-
91-
@Override
92-
public void onCreate() {
93-
super.onCreate();
94-
// 在 Application 的 onCreate 初始化神策 SDK
95-
initSensorsDataSDK(this);
96-
}
97-
98-
/**
99-
* 初始化 SDK 、开启自动采集
100-
*/
101-
private void initSensorsDataSDK(Context context) {
102-
try {
103-
// 初始化 SDK
104-
SensorsDataAPI.sharedInstance(
105-
context, // 传入 Context
106-
(isDebugMode = isDebugMode(context)) ? SA_SERVER_URL_DEBUG : SA_SERVER_URL_RELEASE, // 数据接收的 URL
107-
isDebugMode ? SensorsDataAPI.DebugMode.DEBUG_AND_TRACK : SensorsDataAPI.DebugMode.DEBUG_OFF); // Debug 模式选项
108-
109-
// 打开自动采集, 并指定追踪哪些 AutoTrack 事件
110-
List<SensorsDataAPI.AutoTrackEventType> eventTypeList = new ArrayList<>();
111-
eventTypeList.add(SensorsDataAPI.AutoTrackEventType.APP_START);// $AppStart(启动事件)
112-
eventTypeList.add(SensorsDataAPI.AutoTrackEventType.APP_END);// $AppEnd(退出事件)
113-
eventTypeList.add(SensorsDataAPI.AutoTrackEventType.APP_CLICK);// $AppClick(原生控件点击事件)
114-
SensorsDataAPI.sharedInstance().enableAutoTrack(eventTypeList);
115-
116-
//初始化SDK后,开启 RN 页面控件点击事件的自动采集
117-
SensorsDataAPI.sharedInstance().enableReactNativeAutoTrack();
118-
} catch (Exception e) {
119-
e.printStackTrace();
120-
}
121-
}
122-
123-
/**
124-
* @param context App 的 Context
125-
* @return debug return true,release return false
126-
* 用于判断是 debug 包,还是 relase 包
127-
*/
128-
public static boolean isDebugMode(Context context) {
129-
try {
130-
ApplicationInfo info = context.getApplicationInfo();
131-
return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
132-
} catch (Exception e) {
133-
e.printStackTrace();
134-
return false;
135-
}
136-
}
137-
}
138-
139-
```
140-
141-
## 2.2 开启自动采集
142-
143-
初始化 SDK 之后,可通过 `enableAutoTrack()` 方法 开启自动采集:
144-
145-
```java
146-
try {
147-
// 打开自动采集, 并指定追踪哪些 AutoTrack 事件
148-
List<SensorsDataAPI.AutoTrackEventType> eventTypeList = new ArrayList<>();
149-
// $AppStart
150-
eventTypeList.add(SensorsDataAPI.AutoTrackEventType.APP_START);
151-
// $AppEnd
152-
eventTypeList.add(SensorsDataAPI.AutoTrackEventType.APP_END);
153-
// $AppViewScreen
154-
eventTypeList.add(SensorsDataAPI.AutoTrackEventType.APP_VIEW_SCREEN);
155-
// $AppClick
156-
eventTypeList.add(SensorsDataAPI.AutoTrackEventType.APP_CLICK);
157-
SensorsDataAPI.sharedInstance().enableAutoTrack(eventTypeList);
158-
} catch (Exception e) {
159-
e.printStackTrace();
160-
}
161-
```
162-
163-
## 2.3 开启 React Native 页面控件的自动采集($AppClick)
164-
165-
[1.7.14](https://github.com/sensorsdata/sa-sdk-android/releases/tag/v1.7.14) 及以后的版本, 支持在初始化 SDK 之后,通过 `enableReactNativeAutoTrack()` 方法开启 RN 页面控件点击事件的自动采集。
166-
167-
```java
168-
//初始化SDK后,开启 RN 页面控件点击事件的自动采集
169-
SensorsDataAPI.sharedInstance().enableReactNativeAutoTrack();
170-
```
171-
172-
173-
174-
175-
# 3. iOS 端
176-
## 3.1 集成并初始化 SDK
177-
178-
**第一步:** 使用 CocoaPods 集成:
179-
180-
```
181-
pod 'SensorsAnalyticsSDK'
182-
```
183-
**第二步:**
184-
在程序的入口(如 AppDelegate.m )中引入 `SensorsAnalyticsSDK.h`,并在初始化方法(如 `- application:didFinishLaunchingWithOptions:launchOptions` )中调用 `sharedInstanceWithServerURL:andLaunchOptions:andDebugMode:` 初始化 SDK。
185-
186-
187-
```C
188-
#import "SensorsAnalyticsSDK.h"
189-
190-
#ifdef DEBUG
191-
#define SA_SERVER_URL @"<#【测试项目】数据接收地址#>"
192-
#define SA_DEBUG_MODE SensorsAnalyticsDebugAndTrack
193-
#else
194-
#define SA_SERVER_URL @"<#【正式项目】数据接收地址#>"
195-
#define SA_DEBUG_MODE SensorsAnalyticsDebugOff
196-
#endif
197-
198-
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
199-
200-
[self initSensorsAnalyticsWithLaunchOptions:launchOptions];
201-
return YES;
202-
}
203-
204-
- (void)initSensorsAnalyticsWithLaunchOptions:(NSDictionary *)launchOptions {
205-
// 初始化 SDK
206-
[SensorsAnalyticsSDK sharedInstanceWithServerURL:SA_SERVER_URL
207-
andLaunchOptions:launchOptions
208-
andDebugMode:SA_DEBUG_MODE];
209-
210-
// 打开自动采集, 并指定追踪哪些 AutoTrack 事件
211-
[[SensorsAnalyticsSDK sharedInstance] enableAutoTrack:SensorsAnalyticsEventTypeAppStart|
212-
SensorsAnalyticsEventTypeAppEnd|
213-
SensorsAnalyticsEventTypeAppClick];
214-
215-
}
216-
```
217-
## 3.2 开启全埋点
218-
开发者集成 Sensors Analytics SDK 后,SDK 可以自动采集一些用户行为,如 App 启动、退出等,开发者可以通过 enableAutoTrack: 接口打开自动采集功能:
219-
220-
```C
221-
// 打开自动采集, 并指定追踪哪些 AutoTrack 事件
222-
[[SensorsAnalyticsSDK sharedInstance] enableAutoTrack:SensorsAnalyticsEventTypeAppStart|
223-
SensorsAnalyticsEventTypeAppEnd|
224-
SensorsAnalyticsEventTypeAppViewScreen|
225-
SensorsAnalyticsEventTypeAppClick];
226-
```
227-
228-
## 3.3 开启 React Native 页面控件的自动采集($AppClick)
229-
230-
1、对于直接集成源代码的开发者,可以在编译选项 Preprocessor Macros 中定义选项
231-
`SENSORS_ANALYTICS_REACT_NATIVE=1`
232-
开启。
233-
234-
(对于直接集成 SDK 工程的项目,需要在 SDK 对应的 project 中修改编译选项,在 Preprocessor Macros 中定义选项
235-
`SENSORS_ANALYTICS_REACT_NATIVE=1`
236-
237-
2、对于使用 Cocoapods 集成神策分析 SDK 的开发者,推荐使用:
238-
239-
```
240-
pod 'SensorsAnalyticsSDK', :subspecs => ['ENABLE_REACT_NATIVE_APPCLICK']
241-
```
242-
243-
集成方式开启,或者修改 Pod 中 `SensorsAnalyticsSDK` 项目的编译选项,如下图:
244-
245-
![](https://www.sensorsdata.cn/manual/img/ios_autotrack_1.png)
246-
247-
248-
249-
# 4. 在 React Native 上使用代码埋点
250-
251-
## 4.1 在 js 文件中导入神策模块
252-
253-
在具体的 js 文件中导入神策模块(RNSensorsAnalyticsModule),导入模块示例如下:
254-
255-
```javascript
256-
import {NativeModules}from'react-native';
257-
const RNSensorsAnalyticsModule = NativeModules.RNSensorsAnalyticsModule;
258-
```
259-
260-
添加导入模块后便可进行代码埋点。
261-
262-
## 4.2 添加埋点事件
263-
264-
在具体的位置添加事件埋点,以按钮点击时触发事件为例:
265-
266-
其中对应的事件名为:RN_AddToFav 对应的事件属性为:ProductID 和 UserLevel
267-
268-
```html
269-
<Button
270-
title="Button"
271-
onPress={() =>
272-
RNSensorsAnalyticsModule.track("RN_AddToFav",{"ProductID":123456,"UserLevel":"VIP"})}>
273-
</Button>
274-
```
275-
276-
具体操作如下图所示:
277-
278-
![](https://www.sensorsdata.cn/manual/img/android_sdk_reactnative_3.png)
279-
280-
__$AppClick( React Native 元素点击)事件的预置属性:__
281-
282-
| 字段名称 | 类型 | 显示名 | 说明 | 版本 |
283-
| :------------- | :--- | :----- | :----- | :----- |
284-
| $element_type | 字符串 | 元素类型 | 控件的类型( RNView ) | |
285-
| $element_content | 字符串 | 元素内容 | 控件文本内容 | |
286-
287-
288-
289-
290-
19+
### 详细文档请参考:[Android & iOS SDK 在 React Native 中使用说明](https://www.sensorsdata.cn/manual/sdk_reactnative.html)

0 commit comments

Comments
 (0)