react-native-quicktracking-analytics-module 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -56,7 +56,7 @@ allprojects {
56
56
  dependencies {
57
57
  implementation fileTree(include:['*.jar'], dir:'libs')
58
58
 
59
- implementation "com.umeng.umsdk:qt-px-common:1.3.8.PX"
59
+ implementation "com.umeng.umsdk:qt-px-common:1.3.9.PX"
60
60
  }
61
61
  ```
62
62
 
@@ -141,13 +141,6 @@ QtConfigure.setCustomDomain("收数域名", null);
141
141
  QtConfigure.preInit(this,"appkey","Channel");
142
142
  ```
143
143
 
144
- 3. 初始化
145
- ```java
146
- // 请务必在用户同意隐私政策后,再初始化SDK。
147
- // 正式初始化SDK,务必调用
148
- QtConfigure.init(this,"appkey","unknown",UMConfigure.DEVICE_TYPE_PHONE, "");
149
- ```
150
-
151
144
 
152
145
  ## iOS 基座集成
153
146
  ### 使用CocoaPods集成
@@ -226,40 +219,20 @@ Podfile示例
226
219
  ```
227
220
  # 埋点API
228
221
  ## SDK初始化
229
- ### 预初始化
230
- SDK预初始化函数不会采集设备信息,也不会向QT后台上报数据。
231
-
232
- preInit预初始化函数耗时极少,不会影响App首次冷启动用户体验。
233
-
234
- 注意:该函数仅在Android环境调用,需要手动判断 Platform.OS === 'android'
235
- ```typescript
236
- function preInit(appKey: string): void
237
- ```
238
- | 参数 | 含义 |
239
- | --- | --- |
240
- | appKey | QT后台提供的唯一应用key值 |
241
-
242
222
  ### 正式初始化
243
223
  务必调用,请务必在用户同意隐私政策后,再初始化SDK。
244
224
  ```typescript
245
- function init(appKey: string): void
225
+ function init(appKey: string, channel: string): void
246
226
  ```
247
227
  | 参数 | 含义 |
248
228
  | --- | --- |
249
229
  | appKey | QT后台提供的唯一应用key值 |
250
-
230
+ | channel | 下载渠道 |
251
231
 
252
232
  ### 示例
253
- ```typescript
254
- const initSDK = () => {
255
- if (Platform.OS === 'android') {
256
- QT.preInit('appkey', 'quicktracking');
257
- }
258
- QT.init('appkey', 'quicktracking');
259
- };
233
+ ```tsx
234
+ QT.init('appkey', 'quicktracking');
260
235
  ```
261
-
262
-
263
236
  ## 用户账号上报
264
237
  ### 用户登录
265
238
  该值的上传对应产品中“登录用户”:计算“登录用户”数,就是计算下述API上传值的去重数
@@ -279,7 +252,7 @@ function profileSignIn(ID: string, provider?: string): void
279
252
  function profileSignOff(): void
280
253
  ```
281
254
 
282
- 示例:
255
+ ### 示例
283
256
  ```typescript
284
257
  QT.profileSignIn('用户ID');
285
258
  QT.profileSignOff();
@@ -292,7 +265,7 @@ function sendEvent(eventId: string, params: any): void
292
265
  ```
293
266
  | 参数 | 含义 |
294
267
  | --- | --- |
295
- | eventId | 当前统计的事件ID |
268
+ | eventId | 当前统计的事件编码 |
296
269
  | params | 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对 |
297
270
 
298
271
  注:用户属性上传一定要在用户账号上报后。
@@ -303,7 +276,7 @@ QT.onProfileSignIn("张三");
303
276
 
304
277
  const user = {
305
278
  gender: "male",
306
- age: "8"
279
+ age: "8"
307
280
  }
308
281
  QT.sendEvent("$$_user_profile", user);
309
282
  ```
@@ -392,7 +365,7 @@ function onPageEnd(pageName: string): void
392
365
  ```
393
366
  | 参数 | 含义 |
394
367
  | --- | --- |
395
- | pageName | 自定义页面的名称 |
368
+ | pageName | 页面编码 |
396
369
 
397
370
  示例:
398
371
  ```typescript
@@ -408,22 +381,38 @@ onPageStart 和 onPageEnd 必须成对调用。
408
381
  ```typescript
409
382
  /**
410
383
  * 自定义事件埋点
411
- * @param eventId 当前统计的事件ID
384
+ * @param eventId 当前统计的事件编码
412
385
  * @param params 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对
386
+ * @param pageName 当前统计事件的页面编码
413
387
  */
414
- function sendEvent(eventId: string, params: any): void
388
+ function sendEvent(eventId: string, params?: any, pageName?: string): void
415
389
  ```
416
390
  | 参数 | 含义 |
417
391
  | --- | --- |
418
- | eventId | 为当前统计的事件ID。 |
392
+ | eventId | 为当前统计的事件编码。 |
419
393
  | params | 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>对”。为单层对象结构,不支持多层嵌套。 |
394
+ | pageName | 当前统计事件的页面编码。 |
420
395
 
421
396
  **示例:**
422
397
  ```typescript
423
- QT.sendEvent('my_event', {
424
- name: 'app_name',
425
- options: 'xxx',
426
- });
398
+ // 携带事件参数的自定义事件
399
+ QT.sendEvent(
400
+ 'event1',
401
+ {
402
+ name: 'quick tracking',
403
+ method: 'func',
404
+ },
405
+ );
406
+
407
+ // 携带事件参数和页面编码的自定义事件
408
+ QT.sendEvent(
409
+ 'event2',
410
+ {
411
+ name: 'quick tracking',
412
+ method: 'func',
413
+ },
414
+ 'main_page'
415
+ );
427
416
  ```
428
417
  > **_备注:_**
429
418
  > - 多参数类型事件能满足原来计算事件/计数事件的分析场景;
@@ -551,6 +540,9 @@ rvm use 2.7.5
551
540
 
552
541
 
553
542
 
543
+
544
+
545
+
554
546
  ## License
555
547
 
556
548
  MIT
@@ -134,7 +134,7 @@ dependencies {
134
134
  // implementation fileTree(include:['*.jar'], dir:'libs')
135
135
  implementation "com.facebook.react:react-native:+"
136
136
  //友盟基础库
137
- implementation "com.umeng.umsdk:qt-px-common:1.3.8.PX"
137
+ implementation "com.umeng.umsdk:qt-px-common:1.3.9.PX"
138
138
  }
139
139
 
140
140
  if (isNewArchitectureEnabled()) {
@@ -61,7 +61,12 @@ public class QuicktrackingAnalyticsModuleModule extends ReactContextBaseJavaModu
61
61
  }
62
62
 
63
63
  @ReactMethod
64
- public void onEventObject(String eventID, ReadableMap property) {
64
+ public void onEventWithPageName(String eventID, String pageName) {
65
+ QtTrackAgent.onEvent(context, eventID, pageName);
66
+ }
67
+
68
+ @ReactMethod
69
+ public void onEventWithParams(String eventID, ReadableMap property) {
65
70
  Map<String, Object> map = new HashMap();
66
71
  ReadableMapKeySetIterator iterator = property.keySetIterator();
67
72
  while (iterator.hasNextKey()) {
@@ -81,6 +86,27 @@ public class QuicktrackingAnalyticsModuleModule extends ReactContextBaseJavaModu
81
86
  QtTrackAgent.onEventObject(context, eventID, map);
82
87
  }
83
88
 
89
+ @ReactMethod
90
+ public void onEventWithParamsAndPageName(String eventID, ReadableMap property, String pageName) {
91
+ Map<String, Object> map = new HashMap();
92
+ ReadableMapKeySetIterator iterator = property.keySetIterator();
93
+ while (iterator.hasNextKey()) {
94
+ String key = iterator.nextKey();
95
+ if (ReadableType.Array == property.getType(key)) {
96
+ map.put(key, property.getArray(key).toString());
97
+ } else if (ReadableType.Boolean == property.getType(key)) {
98
+ map.put(key, String.valueOf(property.getBoolean(key)));
99
+ } else if (ReadableType.Number == property.getType(key)) {
100
+ map.put(key, String.valueOf(property.getInt(key)));
101
+ } else if (ReadableType.String == property.getType(key)) {
102
+ map.put(key, property.getString(key));
103
+ } else if (ReadableType.Map == property.getType(key)) {
104
+ map.put(key, property.getMap(key).toString());
105
+ }
106
+ }
107
+ QtTrackAgent.onEventObject(context, eventID, map, pageName);
108
+ }
109
+
84
110
  @ReactMethod
85
111
  public void onEventForH5(String content) {
86
112
  try {
@@ -163,13 +189,6 @@ public class QuicktrackingAnalyticsModuleModule extends ReactContextBaseJavaModu
163
189
  QtTrackAgent.onProfileSignOff();
164
190
  }
165
191
 
166
- // SDK预初始化函数不会采集设备信息,也不会向QT后台上报数据。
167
- // preInit预初始化函数耗时极少,不会影响App首次冷启动用户体验
168
- @ReactMethod
169
- public void preInit(String AppKey, String Channel) {
170
- QtConfigure.preInit(context, AppKey, Channel);
171
- }
172
-
173
192
  // 请务必在用户同意隐私政策后,再初始化SDK
174
193
  // 正式初始化SDK,务必调用
175
194
  @ReactMethod
@@ -40,7 +40,7 @@ RCT_EXPORT_METHOD(onPageEnd:(NSString *)pageName)
40
40
  * @eventId 自定义事件名(字符串类型)
41
41
  * @params 一级平铺自定义参数属性键值对,不支持嵌套,并且iOS端不支持值为 null 和 "" 类型的键
42
42
  */
43
- RCT_EXPORT_METHOD(onEventObject:(NSString*)eventId parameters:(NSDictionary*)parameters)
43
+ RCT_EXPORT_METHOD(onEventWithParams:(NSString*)eventId parameters:(NSDictionary*)parameters)
44
44
  {
45
45
  if (eventId == nil || [eventId isKindOfClass:[NSNull class]]) {
46
46
  return;
@@ -51,6 +51,31 @@ RCT_EXPORT_METHOD(onEventObject:(NSString*)eventId parameters:(NSDictionary*)par
51
51
  [QTMobClick event:eventId attributes:parameters];
52
52
  }
53
53
 
54
+ RCT_EXPORT_METHOD(onEvenWithPageName:(NSString*)eventId pageName:(NSString *)pageName)
55
+ {
56
+ if (eventId == nil || [eventId isKindOfClass:[NSNull class]]) {
57
+ return;
58
+ }
59
+ if (pageName == nil || [pageName isKindOfClass:[NSNull class]]) {
60
+ return;
61
+ }
62
+ [QTMobClick event:eventId pageName:pageName];
63
+ }
64
+
65
+ RCT_EXPORT_METHOD(onEventWithParamsAndPageName:(NSString*)eventId pageName:(NSString *)pageName parameters:(NSDictionary*)parameters)
66
+ {
67
+ if (eventId == nil || [eventId isKindOfClass:[NSNull class]]) {
68
+ return;
69
+ }
70
+ if (pageName == nil || [pageName isKindOfClass:[NSNull class]]) {
71
+ return;
72
+ }
73
+ if (parameters == nil && [parameters isKindOfClass:[NSNull class]]) {
74
+ parameters = nil;
75
+ }
76
+ [QTMobClick event:eventId pageName:pageName attributes:parameters];
77
+ }
78
+
54
79
  RCT_EXPORT_METHOD(onEvent:(NSString *)eventId)
55
80
  {
56
81
  if (eventId == nil || [eventId isKindOfClass:[NSNull class]]) {
@@ -12,7 +12,7 @@ const QuicktrackingAnalyticsModule = _reactNative.NativeModules.QuicktrackingAna
12
12
  class QT {
13
13
  /**
14
14
  * 页面浏览事件埋点-打开页面
15
- * @param pageName 页面名称
15
+ * @param pageName 页面编码
16
16
  */
17
17
  static onPageStart(pageName) {
18
18
  QuicktrackingAnalyticsModule.onPageStart(pageName);
@@ -20,7 +20,7 @@ class QT {
20
20
 
21
21
  /**
22
22
  * 页面浏览事件埋点-离开页面
23
- * @param pageName 页面名称
23
+ * @param pageName 页面编码
24
24
  */
25
25
  static onPageEnd(pageName) {
26
26
  QuicktrackingAnalyticsModule.onPageEnd(pageName);
@@ -28,14 +28,23 @@ class QT {
28
28
 
29
29
  /**
30
30
  * 自定义事件埋点
31
- * @param eventId 当前统计的事件ID
31
+ * @param eventId 当前统计的事件编码
32
32
  * @param params 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对
33
+ * @param pageName 当前统计事件的页面编码
33
34
  */
34
- static sendEvent(eventId, params) {
35
+ static sendEvent(eventId, params, pageName) {
35
36
  if (params) {
36
- QuicktrackingAnalyticsModule.onEventObject(eventId, params);
37
+ if (pageName) {
38
+ QuicktrackingAnalyticsModule.onEventWithParamsAndPageName(eventId, params, pageName);
39
+ } else {
40
+ QuicktrackingAnalyticsModule.onEventWithParams(eventId, params);
41
+ }
37
42
  } else {
38
- QuicktrackingAnalyticsModule.onEvent(eventId);
43
+ if (pageName) {
44
+ QuicktrackingAnalyticsModule.onEventWithPageName(eventId, pageName);
45
+ } else {
46
+ QuicktrackingAnalyticsModule.onEvent(eventId);
47
+ }
39
48
  }
40
49
  }
41
50
 
@@ -174,19 +183,6 @@ class QT {
174
183
  QuicktrackingAnalyticsModule.profileSignOff();
175
184
  }
176
185
 
177
- /**
178
- * SDK预初始化,仅Android调用
179
- * @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
180
- * @param channel 下载渠道
181
- * @description
182
- ** SDK预初始化函数不会采集设备信息,也不会向QT后台上报数据。
183
- ** preInit预初始化函数耗时极少,不会影响App首次冷启动用户体验。
184
- ** 需要在RN中判断 Platform.OS === 'android',再调用此接口
185
- */
186
- static preInit(appKey, channel) {
187
- QuicktrackingAnalyticsModule.preInit(appKey, channel);
188
- }
189
-
190
186
  /**
191
187
  * SDK正式初始化
192
188
  * @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
@@ -6,7 +6,7 @@ const QuicktrackingAnalyticsModule = NativeModules.QuicktrackingAnalyticsModule;
6
6
  export class QT {
7
7
  /**
8
8
  * 页面浏览事件埋点-打开页面
9
- * @param pageName 页面名称
9
+ * @param pageName 页面编码
10
10
  */
11
11
  static onPageStart(pageName) {
12
12
  QuicktrackingAnalyticsModule.onPageStart(pageName);
@@ -14,7 +14,7 @@ export class QT {
14
14
 
15
15
  /**
16
16
  * 页面浏览事件埋点-离开页面
17
- * @param pageName 页面名称
17
+ * @param pageName 页面编码
18
18
  */
19
19
  static onPageEnd(pageName) {
20
20
  QuicktrackingAnalyticsModule.onPageEnd(pageName);
@@ -22,14 +22,23 @@ export class QT {
22
22
 
23
23
  /**
24
24
  * 自定义事件埋点
25
- * @param eventId 当前统计的事件ID
25
+ * @param eventId 当前统计的事件编码
26
26
  * @param params 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对
27
+ * @param pageName 当前统计事件的页面编码
27
28
  */
28
- static sendEvent(eventId, params) {
29
+ static sendEvent(eventId, params, pageName) {
29
30
  if (params) {
30
- QuicktrackingAnalyticsModule.onEventObject(eventId, params);
31
+ if (pageName) {
32
+ QuicktrackingAnalyticsModule.onEventWithParamsAndPageName(eventId, params, pageName);
33
+ } else {
34
+ QuicktrackingAnalyticsModule.onEventWithParams(eventId, params);
35
+ }
31
36
  } else {
32
- QuicktrackingAnalyticsModule.onEvent(eventId);
37
+ if (pageName) {
38
+ QuicktrackingAnalyticsModule.onEventWithPageName(eventId, pageName);
39
+ } else {
40
+ QuicktrackingAnalyticsModule.onEvent(eventId);
41
+ }
33
42
  }
34
43
  }
35
44
 
@@ -168,19 +177,6 @@ export class QT {
168
177
  QuicktrackingAnalyticsModule.profileSignOff();
169
178
  }
170
179
 
171
- /**
172
- * SDK预初始化,仅Android调用
173
- * @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
174
- * @param channel 下载渠道
175
- * @description
176
- ** SDK预初始化函数不会采集设备信息,也不会向QT后台上报数据。
177
- ** preInit预初始化函数耗时极少,不会影响App首次冷启动用户体验。
178
- ** 需要在RN中判断 Platform.OS === 'android',再调用此接口
179
- */
180
- static preInit(appKey, channel) {
181
- QuicktrackingAnalyticsModule.preInit(appKey, channel);
182
- }
183
-
184
180
  /**
185
181
  * SDK正式初始化
186
182
  * @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
@@ -6,20 +6,21 @@ declare type EventParams = Record<string, string | number>;
6
6
  export declare class QT {
7
7
  /**
8
8
  * 页面浏览事件埋点-打开页面
9
- * @param pageName 页面名称
9
+ * @param pageName 页面编码
10
10
  */
11
11
  static onPageStart(pageName: string): void;
12
12
  /**
13
13
  * 页面浏览事件埋点-离开页面
14
- * @param pageName 页面名称
14
+ * @param pageName 页面编码
15
15
  */
16
16
  static onPageEnd(pageName: string): void;
17
17
  /**
18
18
  * 自定义事件埋点
19
- * @param eventId 当前统计的事件ID
19
+ * @param eventId 当前统计的事件编码
20
20
  * @param params 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对
21
+ * @param pageName 当前统计事件的页面编码
21
22
  */
22
- static sendEvent(eventId: string, params?: EventParams): void;
23
+ static sendEvent(eventId: string, params?: EventParams, pageName?: string): void;
23
24
  /**
24
25
  * 桥接事件埋点
25
26
  * @param data H5转发事件的日志体
@@ -62,16 +63,6 @@ export declare class QT {
62
63
  * 账号登出时需调用此接口,调用之后不再发送账号相关内容。
63
64
  */
64
65
  static profileSignOff(): void;
65
- /**
66
- * SDK预初始化,仅Android调用
67
- * @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
68
- * @param channel 下载渠道
69
- * @description
70
- ** SDK预初始化函数不会采集设备信息,也不会向QT后台上报数据。
71
- ** preInit预初始化函数耗时极少,不会影响App首次冷启动用户体验。
72
- ** 需要在RN中判断 Platform.OS === 'android',再调用此接口
73
- */
74
- static preInit(appKey: string, channel: string): void;
75
66
  /**
76
67
  * SDK正式初始化
77
68
  * @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-quicktracking-analytics-module",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "QuickTracking ReactNative SDK",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/index.tsx CHANGED
@@ -10,7 +10,7 @@ type EventParams = Record<string, string | number>;
10
10
  export class QT {
11
11
  /**
12
12
  * 页面浏览事件埋点-打开页面
13
- * @param pageName 页面名称
13
+ * @param pageName 页面编码
14
14
  */
15
15
  static onPageStart(pageName: string) {
16
16
  QuicktrackingAnalyticsModule.onPageStart(pageName);
@@ -18,7 +18,7 @@ export class QT {
18
18
 
19
19
  /**
20
20
  * 页面浏览事件埋点-离开页面
21
- * @param pageName 页面名称
21
+ * @param pageName 页面编码
22
22
  */
23
23
  static onPageEnd(pageName: string) {
24
24
  QuicktrackingAnalyticsModule.onPageEnd(pageName);
@@ -26,14 +26,27 @@ export class QT {
26
26
 
27
27
  /**
28
28
  * 自定义事件埋点
29
- * @param eventId 当前统计的事件ID
29
+ * @param eventId 当前统计的事件编码
30
30
  * @param params 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对
31
+ * @param pageName 当前统计事件的页面编码
31
32
  */
32
- static sendEvent(eventId: string, params?: EventParams) {
33
+ static sendEvent(eventId: string, params?: EventParams, pageName?: string) {
33
34
  if (params) {
34
- QuicktrackingAnalyticsModule.onEventObject(eventId, params);
35
+ if (pageName) {
36
+ QuicktrackingAnalyticsModule.onEventWithParamsAndPageName(
37
+ eventId,
38
+ params,
39
+ pageName
40
+ );
41
+ } else {
42
+ QuicktrackingAnalyticsModule.onEventWithParams(eventId, params);
43
+ }
35
44
  } else {
36
- QuicktrackingAnalyticsModule.onEvent(eventId);
45
+ if (pageName) {
46
+ QuicktrackingAnalyticsModule.onEventWithPageName(eventId, pageName);
47
+ } else {
48
+ QuicktrackingAnalyticsModule.onEvent(eventId);
49
+ }
37
50
  }
38
51
  }
39
52
 
@@ -176,19 +189,6 @@ export class QT {
176
189
  QuicktrackingAnalyticsModule.profileSignOff();
177
190
  }
178
191
 
179
- /**
180
- * SDK预初始化,仅Android调用
181
- * @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
182
- * @param channel 下载渠道
183
- * @description
184
- ** SDK预初始化函数不会采集设备信息,也不会向QT后台上报数据。
185
- ** preInit预初始化函数耗时极少,不会影响App首次冷启动用户体验。
186
- ** 需要在RN中判断 Platform.OS === 'android',再调用此接口
187
- */
188
- static preInit(appKey: string, channel: string) {
189
- QuicktrackingAnalyticsModule.preInit(appKey, channel);
190
- }
191
-
192
192
  /**
193
193
  * SDK正式初始化
194
194
  * @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方