@@ -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