react-native-quicktracking-analytics-module 1.0.0 → 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 +49 -24
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/reactnativequicktrackinganalyticsmodule/QuicktrackingAnalyticsModuleModule.java +39 -1
- package/ios/QuicktrackingAnalyticsModule.m +39 -2
- package/ios/QuicktrackingAnalyticsModule.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/lib/commonjs/index.js +28 -60
- package/lib/module/index.js +28 -60
- package/lib/typescript/index.d.ts +16 -7
- package/package.json +1 -1
- package/src/index.tsx +32 -60
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.
|
|
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集成
|
|
@@ -225,6 +218,21 @@ Podfile示例
|
|
|
225
218
|
|
|
226
219
|
```
|
|
227
220
|
# 埋点API
|
|
221
|
+
## SDK初始化
|
|
222
|
+
### 正式初始化
|
|
223
|
+
务必调用,请务必在用户同意隐私政策后,再初始化SDK。
|
|
224
|
+
```typescript
|
|
225
|
+
function init(appKey: string, channel: string): void
|
|
226
|
+
```
|
|
227
|
+
| 参数 | 含义 |
|
|
228
|
+
| --- | --- |
|
|
229
|
+
| appKey | QT后台提供的唯一应用key值 |
|
|
230
|
+
| channel | 下载渠道 |
|
|
231
|
+
|
|
232
|
+
### 示例
|
|
233
|
+
```tsx
|
|
234
|
+
QT.init('appkey', 'quicktracking');
|
|
235
|
+
```
|
|
228
236
|
## 用户账号上报
|
|
229
237
|
### 用户登录
|
|
230
238
|
该值的上传对应产品中“登录用户”:计算“登录用户”数,就是计算下述API上传值的去重数
|
|
@@ -244,7 +252,7 @@ function profileSignIn(ID: string, provider?: string): void
|
|
|
244
252
|
function profileSignOff(): void
|
|
245
253
|
```
|
|
246
254
|
|
|
247
|
-
|
|
255
|
+
### 示例
|
|
248
256
|
```typescript
|
|
249
257
|
QT.profileSignIn('用户ID');
|
|
250
258
|
QT.profileSignOff();
|
|
@@ -257,7 +265,7 @@ function sendEvent(eventId: string, params: any): void
|
|
|
257
265
|
```
|
|
258
266
|
| 参数 | 含义 |
|
|
259
267
|
| --- | --- |
|
|
260
|
-
| eventId |
|
|
268
|
+
| eventId | 当前统计的事件编码 |
|
|
261
269
|
| params | 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对 |
|
|
262
270
|
|
|
263
271
|
注:用户属性上传一定要在用户账号上报后。
|
|
@@ -268,7 +276,7 @@ QT.onProfileSignIn("张三");
|
|
|
268
276
|
|
|
269
277
|
const user = {
|
|
270
278
|
gender: "male",
|
|
271
|
-
|
|
279
|
+
age: "8"
|
|
272
280
|
}
|
|
273
281
|
QT.sendEvent("$$_user_profile", user);
|
|
274
282
|
```
|
|
@@ -357,7 +365,7 @@ function onPageEnd(pageName: string): void
|
|
|
357
365
|
```
|
|
358
366
|
| 参数 | 含义 |
|
|
359
367
|
| --- | --- |
|
|
360
|
-
| pageName |
|
|
368
|
+
| pageName | 页面编码 |
|
|
361
369
|
|
|
362
370
|
示例:
|
|
363
371
|
```typescript
|
|
@@ -373,22 +381,38 @@ onPageStart 和 onPageEnd 必须成对调用。
|
|
|
373
381
|
```typescript
|
|
374
382
|
/**
|
|
375
383
|
* 自定义事件埋点
|
|
376
|
-
* @param eventId
|
|
384
|
+
* @param eventId 当前统计的事件编码
|
|
377
385
|
* @param params 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对
|
|
386
|
+
* @param pageName 当前统计事件的页面编码
|
|
378
387
|
*/
|
|
379
|
-
function sendEvent(eventId: string, params
|
|
388
|
+
function sendEvent(eventId: string, params?: any, pageName?: string): void
|
|
380
389
|
```
|
|
381
390
|
| 参数 | 含义 |
|
|
382
391
|
| --- | --- |
|
|
383
|
-
| eventId |
|
|
392
|
+
| eventId | 为当前统计的事件编码。 |
|
|
384
393
|
| params | 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>对”。为单层对象结构,不支持多层嵌套。 |
|
|
394
|
+
| pageName | 当前统计事件的页面编码。 |
|
|
385
395
|
|
|
386
396
|
**示例:**
|
|
387
397
|
```typescript
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
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
|
+
);
|
|
392
416
|
```
|
|
393
417
|
> **_备注:_**
|
|
394
418
|
> - 多参数类型事件能满足原来计算事件/计数事件的分析场景;
|
|
@@ -491,7 +515,6 @@ export default function WebPage() {
|
|
|
491
515
|
## Umeng4Plus为空
|
|
492
516
|
控制台提示[APLUS] -- jsbridge Android environment error, Umeng4Aplus = undefined
|
|
493
517
|
Umeng4Plus是桥接的环境变量,若提示undefined,说明在原生端未接入桥接功能,请找负责Android或iOS的同学对接。
|
|
494
|
-
|
|
495
518
|
## ruby版本过低
|
|
496
519
|
进入项目时提示,Required ruby-2.7.5 is not installed. To install do: 'rvm install "ruby-2.7.5"'
|
|
497
520
|
注意您的ruby版本,MacOS自带的Ruby为2.6.8,不符合RN项目需求。
|
|
@@ -505,19 +528,21 @@ rvm use 2.7.5
|
|
|
505
528
|
|
|
506
529
|
## 嵌入的html可以收发数,但Android端不能
|
|
507
530
|
查看Android Manifest里有没有配置网络权限。
|
|
508
|
-
|
|
509
531
|
# 参考
|
|
510
532
|
> [QuickTracking Android SDK集成手册](https://help.aliyun.com/document_detail/260238.html)
|
|
511
|
-
>
|
|
512
533
|
> [QuickTracking iOS SDK集成手册](https://help.aliyun.com/document_detail/260233.html)
|
|
513
|
-
>
|
|
514
534
|
> [React Native Android 本地模块](https://reactnative.dev/docs/native-modules-android)
|
|
515
|
-
>
|
|
516
535
|
> [React Native iOS 本地模块](https://reactnative.dev/docs/native-modules-ios)
|
|
517
536
|
|
|
518
537
|
|
|
519
538
|
|
|
520
539
|
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
|
|
521
546
|
## License
|
|
522
547
|
|
|
523
548
|
MIT
|
package/android/build.gradle
CHANGED
|
@@ -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.
|
|
137
|
+
implementation "com.umeng.umsdk:qt-px-common:1.3.9.PX"
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
if (isNewArchitectureEnabled()) {
|
|
@@ -23,6 +23,7 @@ import com.facebook.react.bridge.ReadableType;
|
|
|
23
23
|
import com.facebook.react.module.annotations.ReactModule;
|
|
24
24
|
|
|
25
25
|
import com.quick.qt.analytics.QtTrackAgent;
|
|
26
|
+
import com.quick.qt.commonsdk.QtConfigure;
|
|
26
27
|
import com.quick.qt.spm.SpmAgent;
|
|
27
28
|
|
|
28
29
|
@ReactModule(name = QuicktrackingAnalyticsModuleModule.NAME)
|
|
@@ -54,9 +55,18 @@ public class QuicktrackingAnalyticsModuleModule extends ReactContextBaseJavaModu
|
|
|
54
55
|
QtTrackAgent.onPageEnd(pageName);
|
|
55
56
|
}
|
|
56
57
|
|
|
58
|
+
@ReactMethod
|
|
59
|
+
public void onEvent(String eventID) {
|
|
60
|
+
QtTrackAgent.onEvent(context, eventID);
|
|
61
|
+
}
|
|
57
62
|
|
|
58
63
|
@ReactMethod
|
|
59
|
-
public void
|
|
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) {
|
|
60
70
|
Map<String, Object> map = new HashMap();
|
|
61
71
|
ReadableMapKeySetIterator iterator = property.keySetIterator();
|
|
62
72
|
while (iterator.hasNextKey()) {
|
|
@@ -76,6 +86,27 @@ public class QuicktrackingAnalyticsModuleModule extends ReactContextBaseJavaModu
|
|
|
76
86
|
QtTrackAgent.onEventObject(context, eventID, map);
|
|
77
87
|
}
|
|
78
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
|
+
|
|
79
110
|
@ReactMethod
|
|
80
111
|
public void onEventForH5(String content) {
|
|
81
112
|
try {
|
|
@@ -157,4 +188,11 @@ public class QuicktrackingAnalyticsModuleModule extends ReactContextBaseJavaModu
|
|
|
157
188
|
public void profileSignOff() {
|
|
158
189
|
QtTrackAgent.onProfileSignOff();
|
|
159
190
|
}
|
|
191
|
+
|
|
192
|
+
// 请务必在用户同意隐私政策后,再初始化SDK
|
|
193
|
+
// 正式初始化SDK,务必调用
|
|
194
|
+
@ReactMethod
|
|
195
|
+
public void initWithAppkey(String AppKey, String Channel) {
|
|
196
|
+
QtConfigure.init(context, AppKey, Channel, QtConfigure.DEVICE_TYPE_PHONE, "");
|
|
197
|
+
}
|
|
160
198
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
//#if __has_include(<QTCommon/MobClick.h>)
|
|
2
2
|
#import <QTCommon/MobClick.h>
|
|
3
|
+
#import <QTCommon/UMConfigure.h>
|
|
4
|
+
|
|
3
5
|
//#else
|
|
4
6
|
//#import "MobClick.h"
|
|
5
7
|
//#endif
|
|
@@ -38,7 +40,7 @@ RCT_EXPORT_METHOD(onPageEnd:(NSString *)pageName)
|
|
|
38
40
|
* @eventId 自定义事件名(字符串类型)
|
|
39
41
|
* @params 一级平铺自定义参数属性键值对,不支持嵌套,并且iOS端不支持值为 null 和 "" 类型的键
|
|
40
42
|
*/
|
|
41
|
-
RCT_EXPORT_METHOD(
|
|
43
|
+
RCT_EXPORT_METHOD(onEventWithParams:(NSString*)eventId parameters:(NSDictionary*)parameters)
|
|
42
44
|
{
|
|
43
45
|
if (eventId == nil || [eventId isKindOfClass:[NSNull class]]) {
|
|
44
46
|
return;
|
|
@@ -49,6 +51,31 @@ RCT_EXPORT_METHOD(onEventObject:(NSString*)eventId parameters:(NSDictionary*)par
|
|
|
49
51
|
[QTMobClick event:eventId attributes:parameters];
|
|
50
52
|
}
|
|
51
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
|
+
|
|
52
79
|
RCT_EXPORT_METHOD(onEvent:(NSString *)eventId)
|
|
53
80
|
{
|
|
54
81
|
if (eventId == nil || [eventId isKindOfClass:[NSNull class]]) {
|
|
@@ -70,7 +97,7 @@ RCT_EXPORT_METHOD(onEventWithParamsAndCount:(NSString *)eventId parameters:(NSDi
|
|
|
70
97
|
}
|
|
71
98
|
|
|
72
99
|
RCT_EXPORT_METHOD(onEventForH5:(NSString*)eventId attributes:(NSDictionary *)attributes) {
|
|
73
|
-
|
|
100
|
+
|
|
74
101
|
Class _MobClickEvent = NSClassFromString(@"QTMobClickEvent");
|
|
75
102
|
if (_MobClickEvent){
|
|
76
103
|
SEL sel = NSSelectorFromString(@"eventForH5:attributes:");
|
|
@@ -126,6 +153,16 @@ RCT_EXPORT_METHOD(getGlobalProperties:(RCTPromiseResolveBlock)resolve reject:(RC
|
|
|
126
153
|
}
|
|
127
154
|
}
|
|
128
155
|
|
|
156
|
+
// RCT_EXPORT_METHOD(preInit:(NSString*)appKey)
|
|
157
|
+
// {
|
|
158
|
+
// [QTMobClick preInit:appKey];
|
|
159
|
+
// }
|
|
160
|
+
|
|
161
|
+
RCT_EXPORT_METHOD(initWithAppkey:(NSString *)appKey channel:(NSString *)channel)
|
|
162
|
+
{
|
|
163
|
+
[QTConfigure initWithAppkey:appKey channel:channel];
|
|
164
|
+
}
|
|
165
|
+
|
|
129
166
|
//======================================用户账号和用户属性相关===========================================//
|
|
130
167
|
RCT_EXPORT_METHOD(profileSignIn:(NSString*)puid provider:(NSString*)provider)
|
|
131
168
|
{
|
package/lib/commonjs/index.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
37
|
+
if (pageName) {
|
|
38
|
+
QuicktrackingAnalyticsModule.onEventWithParamsAndPageName(eventId, params, pageName);
|
|
39
|
+
} else {
|
|
40
|
+
QuicktrackingAnalyticsModule.onEventWithParams(eventId, params);
|
|
41
|
+
}
|
|
37
42
|
} else {
|
|
38
|
-
|
|
43
|
+
if (pageName) {
|
|
44
|
+
QuicktrackingAnalyticsModule.onEventWithPageName(eventId, pageName);
|
|
45
|
+
} else {
|
|
46
|
+
QuicktrackingAnalyticsModule.onEvent(eventId);
|
|
47
|
+
}
|
|
39
48
|
}
|
|
40
49
|
}
|
|
41
50
|
|
|
@@ -78,9 +87,10 @@ class QT {
|
|
|
78
87
|
/**
|
|
79
88
|
* 注册一个全局事件属性
|
|
80
89
|
* @param property 要注册的全局属性
|
|
81
|
-
* @description
|
|
82
|
-
|
|
83
|
-
|
|
90
|
+
* @description
|
|
91
|
+
** 注册全局属性后,后续触发的所有事件都将自动包含这些属性;
|
|
92
|
+
** 且这些属性及属性值存入缓存,APP退出后清除。
|
|
93
|
+
** 在分析数据时,可根据此属性进行查看和筛选。
|
|
84
94
|
*/
|
|
85
95
|
static registerGlobalProperty(gp) {
|
|
86
96
|
if (_reactNative.Platform.OS === 'ios') {
|
|
@@ -172,58 +182,16 @@ class QT {
|
|
|
172
182
|
static profileSignOff() {
|
|
173
183
|
QuicktrackingAnalyticsModule.profileSignOff();
|
|
174
184
|
}
|
|
175
|
-
// /**
|
|
176
|
-
// * 自定义事件埋点
|
|
177
|
-
// * @param eventId 当前统计的事件ID
|
|
178
|
-
// * @param eventLabel 分类标签
|
|
179
|
-
// */
|
|
180
|
-
// static sendEventLabel(eventId: string, eventLabel: string) {
|
|
181
|
-
// return QuicktrackingAnalyticsModule.sendEventLabel(eventId, eventLabel);
|
|
182
|
-
// }
|
|
183
|
-
|
|
184
|
-
// /**
|
|
185
|
-
// * 自定义事件埋点
|
|
186
|
-
// * @param eventId 当前统计的事件ID
|
|
187
|
-
// * @param eventData 为当前事件的属性和取值(键值对),不能为空,如:{name:"Jack",gender:"man"}
|
|
188
|
-
// */
|
|
189
|
-
// static sendEventMap(eventId: string, eventData: Object) {
|
|
190
|
-
// return QuicktrackingAnalyticsModule.sendEventMap(eventId, eventData);
|
|
191
|
-
// }
|
|
192
|
-
|
|
193
|
-
// /**
|
|
194
|
-
// * 自定义事件埋点
|
|
195
|
-
// * @param eventId 当前统计的事件ID
|
|
196
|
-
// * @param eventData 为当前事件的属性和取值(键值对),不能为空,如:{name:"Jack",gender:"man"}
|
|
197
|
-
// * @param eventNum 用户每次触发的数值的分布情况,如事件持续时间、每次付款金额等
|
|
198
|
-
// */
|
|
199
|
-
// static sendEventMapAndCount(
|
|
200
|
-
// eventId: string,
|
|
201
|
-
// eventData: Object,
|
|
202
|
-
// eventNum: number
|
|
203
|
-
// ) {
|
|
204
|
-
// return QuicktrackingAnalyticsModule.sendEventMapAndCount(
|
|
205
|
-
// eventId,
|
|
206
|
-
// eventData,
|
|
207
|
-
// eventNum
|
|
208
|
-
// );
|
|
209
|
-
// }
|
|
210
185
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
// /**
|
|
221
|
-
// * 设置关注事件是否触发
|
|
222
|
-
// * @param eventList 事件list
|
|
223
|
-
// */
|
|
224
|
-
// static setFirstLaunchEvent<T>(eventList: Array<T>) {
|
|
225
|
-
// return QuicktrackingAnalyticsModule.setFirstLaunchEvent(eventList);
|
|
226
|
-
// }
|
|
186
|
+
/**
|
|
187
|
+
* SDK正式初始化
|
|
188
|
+
* @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
|
|
189
|
+
* @param channel 下载渠道
|
|
190
|
+
* @description 请务必在用户同意隐私政策后,再初始化SDK,务必调用。
|
|
191
|
+
*/
|
|
192
|
+
static init(appKey, channel) {
|
|
193
|
+
QuicktrackingAnalyticsModule.initWithAppkey(appKey, channel);
|
|
194
|
+
}
|
|
227
195
|
}
|
|
228
196
|
exports.QT = QT;
|
|
229
197
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
31
|
+
if (pageName) {
|
|
32
|
+
QuicktrackingAnalyticsModule.onEventWithParamsAndPageName(eventId, params, pageName);
|
|
33
|
+
} else {
|
|
34
|
+
QuicktrackingAnalyticsModule.onEventWithParams(eventId, params);
|
|
35
|
+
}
|
|
31
36
|
} else {
|
|
32
|
-
|
|
37
|
+
if (pageName) {
|
|
38
|
+
QuicktrackingAnalyticsModule.onEventWithPageName(eventId, pageName);
|
|
39
|
+
} else {
|
|
40
|
+
QuicktrackingAnalyticsModule.onEvent(eventId);
|
|
41
|
+
}
|
|
33
42
|
}
|
|
34
43
|
}
|
|
35
44
|
|
|
@@ -72,9 +81,10 @@ export class QT {
|
|
|
72
81
|
/**
|
|
73
82
|
* 注册一个全局事件属性
|
|
74
83
|
* @param property 要注册的全局属性
|
|
75
|
-
* @description
|
|
76
|
-
|
|
77
|
-
|
|
84
|
+
* @description
|
|
85
|
+
** 注册全局属性后,后续触发的所有事件都将自动包含这些属性;
|
|
86
|
+
** 且这些属性及属性值存入缓存,APP退出后清除。
|
|
87
|
+
** 在分析数据时,可根据此属性进行查看和筛选。
|
|
78
88
|
*/
|
|
79
89
|
static registerGlobalProperty(gp) {
|
|
80
90
|
if (Platform.OS === 'ios') {
|
|
@@ -166,57 +176,15 @@ export class QT {
|
|
|
166
176
|
static profileSignOff() {
|
|
167
177
|
QuicktrackingAnalyticsModule.profileSignOff();
|
|
168
178
|
}
|
|
169
|
-
// /**
|
|
170
|
-
// * 自定义事件埋点
|
|
171
|
-
// * @param eventId 当前统计的事件ID
|
|
172
|
-
// * @param eventLabel 分类标签
|
|
173
|
-
// */
|
|
174
|
-
// static sendEventLabel(eventId: string, eventLabel: string) {
|
|
175
|
-
// return QuicktrackingAnalyticsModule.sendEventLabel(eventId, eventLabel);
|
|
176
|
-
// }
|
|
177
|
-
|
|
178
|
-
// /**
|
|
179
|
-
// * 自定义事件埋点
|
|
180
|
-
// * @param eventId 当前统计的事件ID
|
|
181
|
-
// * @param eventData 为当前事件的属性和取值(键值对),不能为空,如:{name:"Jack",gender:"man"}
|
|
182
|
-
// */
|
|
183
|
-
// static sendEventMap(eventId: string, eventData: Object) {
|
|
184
|
-
// return QuicktrackingAnalyticsModule.sendEventMap(eventId, eventData);
|
|
185
|
-
// }
|
|
186
|
-
|
|
187
|
-
// /**
|
|
188
|
-
// * 自定义事件埋点
|
|
189
|
-
// * @param eventId 当前统计的事件ID
|
|
190
|
-
// * @param eventData 为当前事件的属性和取值(键值对),不能为空,如:{name:"Jack",gender:"man"}
|
|
191
|
-
// * @param eventNum 用户每次触发的数值的分布情况,如事件持续时间、每次付款金额等
|
|
192
|
-
// */
|
|
193
|
-
// static sendEventMapAndCount(
|
|
194
|
-
// eventId: string,
|
|
195
|
-
// eventData: Object,
|
|
196
|
-
// eventNum: number
|
|
197
|
-
// ) {
|
|
198
|
-
// return QuicktrackingAnalyticsModule.sendEventMapAndCount(
|
|
199
|
-
// eventId,
|
|
200
|
-
// eventData,
|
|
201
|
-
// eventNum
|
|
202
|
-
// );
|
|
203
|
-
// }
|
|
204
179
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
// /**
|
|
215
|
-
// * 设置关注事件是否触发
|
|
216
|
-
// * @param eventList 事件list
|
|
217
|
-
// */
|
|
218
|
-
// static setFirstLaunchEvent<T>(eventList: Array<T>) {
|
|
219
|
-
// return QuicktrackingAnalyticsModule.setFirstLaunchEvent(eventList);
|
|
220
|
-
// }
|
|
180
|
+
/**
|
|
181
|
+
* SDK正式初始化
|
|
182
|
+
* @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
|
|
183
|
+
* @param channel 下载渠道
|
|
184
|
+
* @description 请务必在用户同意隐私政策后,再初始化SDK,务必调用。
|
|
185
|
+
*/
|
|
186
|
+
static init(appKey, channel) {
|
|
187
|
+
QuicktrackingAnalyticsModule.initWithAppkey(appKey, channel);
|
|
188
|
+
}
|
|
221
189
|
}
|
|
222
190
|
//# sourceMappingURL=index.js.map
|
|
@@ -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
|
|
19
|
+
* @param eventId 当前统计的事件编码
|
|
20
20
|
* @param params 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对
|
|
21
|
+
* @param pageName 当前统计事件的页面编码
|
|
21
22
|
*/
|
|
22
|
-
static sendEvent(eventId: string, params
|
|
23
|
+
static sendEvent(eventId: string, params?: EventParams, pageName?: string): void;
|
|
23
24
|
/**
|
|
24
25
|
* 桥接事件埋点
|
|
25
26
|
* @param data H5转发事件的日志体
|
|
@@ -28,9 +29,10 @@ export declare class QT {
|
|
|
28
29
|
/**
|
|
29
30
|
* 注册一个全局事件属性
|
|
30
31
|
* @param property 要注册的全局属性
|
|
31
|
-
* @description
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
* @description
|
|
33
|
+
** 注册全局属性后,后续触发的所有事件都将自动包含这些属性;
|
|
34
|
+
** 且这些属性及属性值存入缓存,APP退出后清除。
|
|
35
|
+
** 在分析数据时,可根据此属性进行查看和筛选。
|
|
34
36
|
*/
|
|
35
37
|
static registerGlobalProperty(gp: GlobalProperty): void;
|
|
36
38
|
/**
|
|
@@ -61,5 +63,12 @@ export declare class QT {
|
|
|
61
63
|
* 账号登出时需调用此接口,调用之后不再发送账号相关内容。
|
|
62
64
|
*/
|
|
63
65
|
static profileSignOff(): void;
|
|
66
|
+
/**
|
|
67
|
+
* SDK正式初始化
|
|
68
|
+
* @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
|
|
69
|
+
* @param channel 下载渠道
|
|
70
|
+
* @description 请务必在用户同意隐私政策后,再初始化SDK,务必调用。
|
|
71
|
+
*/
|
|
72
|
+
static init(appKey: string, channel: string): void;
|
|
64
73
|
}
|
|
65
74
|
export {};
|
package/package.json
CHANGED
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
|
|
29
|
+
* @param eventId 当前统计的事件编码
|
|
30
30
|
* @param params 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对
|
|
31
|
+
* @param pageName 当前统计事件的页面编码
|
|
31
32
|
*/
|
|
32
|
-
static sendEvent(eventId: string, params
|
|
33
|
+
static sendEvent(eventId: string, params?: EventParams, pageName?: string) {
|
|
33
34
|
if (params) {
|
|
34
|
-
|
|
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
|
-
|
|
45
|
+
if (pageName) {
|
|
46
|
+
QuicktrackingAnalyticsModule.onEventWithPageName(eventId, pageName);
|
|
47
|
+
} else {
|
|
48
|
+
QuicktrackingAnalyticsModule.onEvent(eventId);
|
|
49
|
+
}
|
|
37
50
|
}
|
|
38
51
|
}
|
|
39
52
|
|
|
@@ -80,9 +93,10 @@ export class QT {
|
|
|
80
93
|
/**
|
|
81
94
|
* 注册一个全局事件属性
|
|
82
95
|
* @param property 要注册的全局属性
|
|
83
|
-
* @description
|
|
84
|
-
|
|
85
|
-
|
|
96
|
+
* @description
|
|
97
|
+
** 注册全局属性后,后续触发的所有事件都将自动包含这些属性;
|
|
98
|
+
** 且这些属性及属性值存入缓存,APP退出后清除。
|
|
99
|
+
** 在分析数据时,可根据此属性进行查看和筛选。
|
|
86
100
|
*/
|
|
87
101
|
static registerGlobalProperty(gp: GlobalProperty) {
|
|
88
102
|
if (Platform.OS === 'ios') {
|
|
@@ -174,56 +188,14 @@ export class QT {
|
|
|
174
188
|
static profileSignOff() {
|
|
175
189
|
QuicktrackingAnalyticsModule.profileSignOff();
|
|
176
190
|
}
|
|
177
|
-
// /**
|
|
178
|
-
// * 自定义事件埋点
|
|
179
|
-
// * @param eventId 当前统计的事件ID
|
|
180
|
-
// * @param eventLabel 分类标签
|
|
181
|
-
// */
|
|
182
|
-
// static sendEventLabel(eventId: string, eventLabel: string) {
|
|
183
|
-
// return QuicktrackingAnalyticsModule.sendEventLabel(eventId, eventLabel);
|
|
184
|
-
// }
|
|
185
|
-
|
|
186
|
-
// /**
|
|
187
|
-
// * 自定义事件埋点
|
|
188
|
-
// * @param eventId 当前统计的事件ID
|
|
189
|
-
// * @param eventData 为当前事件的属性和取值(键值对),不能为空,如:{name:"Jack",gender:"man"}
|
|
190
|
-
// */
|
|
191
|
-
// static sendEventMap(eventId: string, eventData: Object) {
|
|
192
|
-
// return QuicktrackingAnalyticsModule.sendEventMap(eventId, eventData);
|
|
193
|
-
// }
|
|
194
|
-
|
|
195
|
-
// /**
|
|
196
|
-
// * 自定义事件埋点
|
|
197
|
-
// * @param eventId 当前统计的事件ID
|
|
198
|
-
// * @param eventData 为当前事件的属性和取值(键值对),不能为空,如:{name:"Jack",gender:"man"}
|
|
199
|
-
// * @param eventNum 用户每次触发的数值的分布情况,如事件持续时间、每次付款金额等
|
|
200
|
-
// */
|
|
201
|
-
// static sendEventMapAndCount(
|
|
202
|
-
// eventId: string,
|
|
203
|
-
// eventData: Object,
|
|
204
|
-
// eventNum: number
|
|
205
|
-
// ) {
|
|
206
|
-
// return QuicktrackingAnalyticsModule.sendEventMapAndCount(
|
|
207
|
-
// eventId,
|
|
208
|
-
// eventData,
|
|
209
|
-
// eventNum
|
|
210
|
-
// );
|
|
211
|
-
// }
|
|
212
191
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
// /**
|
|
223
|
-
// * 设置关注事件是否触发
|
|
224
|
-
// * @param eventList 事件list
|
|
225
|
-
// */
|
|
226
|
-
// static setFirstLaunchEvent<T>(eventList: Array<T>) {
|
|
227
|
-
// return QuicktrackingAnalyticsModule.setFirstLaunchEvent(eventList);
|
|
228
|
-
// }
|
|
192
|
+
/**
|
|
193
|
+
* SDK正式初始化
|
|
194
|
+
* @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
|
|
195
|
+
* @param channel 下载渠道
|
|
196
|
+
* @description 请务必在用户同意隐私政策后,再初始化SDK,务必调用。
|
|
197
|
+
*/
|
|
198
|
+
static init(appKey: string, channel: string) {
|
|
199
|
+
QuicktrackingAnalyticsModule.initWithAppkey(appKey, channel);
|
|
200
|
+
}
|
|
229
201
|
}
|