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

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
@@ -225,6 +225,41 @@ Podfile示例
225
225
 
226
226
  ```
227
227
  # 埋点API
228
+ ## 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
+ ### 正式初始化
243
+ 务必调用,请务必在用户同意隐私政策后,再初始化SDK。
244
+ ```typescript
245
+ function init(appKey: string): void
246
+ ```
247
+ | 参数 | 含义 |
248
+ | --- | --- |
249
+ | appKey | QT后台提供的唯一应用key值 |
250
+
251
+
252
+ ### 示例
253
+ ```typescript
254
+ const initSDK = () => {
255
+ if (Platform.OS === 'android') {
256
+ QT.preInit('appkey', 'quicktracking');
257
+ }
258
+ QT.init('appkey', 'quicktracking');
259
+ };
260
+ ```
261
+
262
+
228
263
  ## 用户账号上报
229
264
  ### 用户登录
230
265
  该值的上传对应产品中“登录用户”:计算“登录用户”数,就是计算下述API上传值的去重数
@@ -491,7 +526,6 @@ export default function WebPage() {
491
526
  ## Umeng4Plus为空
492
527
  控制台提示[APLUS] -- jsbridge Android environment error, Umeng4Aplus = undefined
493
528
  Umeng4Plus是桥接的环境变量,若提示undefined,说明在原生端未接入桥接功能,请找负责Android或iOS的同学对接。
494
-
495
529
  ## ruby版本过低
496
530
  进入项目时提示,Required ruby-2.7.5 is not installed. To install do: 'rvm install "ruby-2.7.5"'
497
531
  注意您的ruby版本,MacOS自带的Ruby为2.6.8,不符合RN项目需求。
@@ -505,19 +539,18 @@ rvm use 2.7.5
505
539
 
506
540
  ## 嵌入的html可以收发数,但Android端不能
507
541
  查看Android Manifest里有没有配置网络权限。
508
-
509
542
  # 参考
510
543
  > [QuickTracking Android SDK集成手册](https://help.aliyun.com/document_detail/260238.html)
511
- >
512
544
  > [QuickTracking iOS SDK集成手册](https://help.aliyun.com/document_detail/260233.html)
513
- >
514
545
  > [React Native Android 本地模块](https://reactnative.dev/docs/native-modules-android)
515
- >
516
546
  > [React Native iOS 本地模块](https://reactnative.dev/docs/native-modules-ios)
517
547
 
518
548
 
519
549
 
520
550
 
551
+
552
+
553
+
521
554
  ## License
522
555
 
523
556
  MIT
@@ -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,6 +55,10 @@ 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
64
  public void onEventObject(String eventID, ReadableMap property) {
@@ -157,4 +162,18 @@ public class QuicktrackingAnalyticsModuleModule extends ReactContextBaseJavaModu
157
162
  public void profileSignOff() {
158
163
  QtTrackAgent.onProfileSignOff();
159
164
  }
165
+
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
+ // 请务必在用户同意隐私政策后,再初始化SDK
174
+ // 正式初始化SDK,务必调用
175
+ @ReactMethod
176
+ public void initWithAppkey(String AppKey, String Channel) {
177
+ QtConfigure.init(context, AppKey, Channel, QtConfigure.DEVICE_TYPE_PHONE, "");
178
+ }
160
179
  }
@@ -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
@@ -70,7 +72,7 @@ RCT_EXPORT_METHOD(onEventWithParamsAndCount:(NSString *)eventId parameters:(NSDi
70
72
  }
71
73
 
72
74
  RCT_EXPORT_METHOD(onEventForH5:(NSString*)eventId attributes:(NSDictionary *)attributes) {
73
-
75
+
74
76
  Class _MobClickEvent = NSClassFromString(@"QTMobClickEvent");
75
77
  if (_MobClickEvent){
76
78
  SEL sel = NSSelectorFromString(@"eventForH5:attributes:");
@@ -126,6 +128,16 @@ RCT_EXPORT_METHOD(getGlobalProperties:(RCTPromiseResolveBlock)resolve reject:(RC
126
128
  }
127
129
  }
128
130
 
131
+ // RCT_EXPORT_METHOD(preInit:(NSString*)appKey)
132
+ // {
133
+ // [QTMobClick preInit:appKey];
134
+ // }
135
+
136
+ RCT_EXPORT_METHOD(initWithAppkey:(NSString *)appKey channel:(NSString *)channel)
137
+ {
138
+ [QTConfigure initWithAppkey:appKey channel:channel];
139
+ }
140
+
129
141
  //======================================用户账号和用户属性相关===========================================//
130
142
  RCT_EXPORT_METHOD(profileSignIn:(NSString*)puid provider:(NSString*)provider)
131
143
  {
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>IDEDidComputeMac32BitWarning</key>
6
+ <true/>
7
+ </dict>
8
+ </plist>
@@ -78,9 +78,10 @@ class QT {
78
78
  /**
79
79
  * 注册一个全局事件属性
80
80
  * @param property 要注册的全局属性
81
- * @description 注册全局属性后,后续触发的所有事件都将自动包含这些属性;
82
- * 且这些属性及属性值存入缓存,APP退出后清除。
83
- * 在分析数据时,可根据此属性进行查看和筛选。
81
+ * @description
82
+ ** 注册全局属性后,后续触发的所有事件都将自动包含这些属性;
83
+ ** 且这些属性及属性值存入缓存,APP退出后清除。
84
+ ** 在分析数据时,可根据此属性进行查看和筛选。
84
85
  */
85
86
  static registerGlobalProperty(gp) {
86
87
  if (_reactNative.Platform.OS === 'ios') {
@@ -172,58 +173,29 @@ class QT {
172
173
  static profileSignOff() {
173
174
  QuicktrackingAnalyticsModule.profileSignOff();
174
175
  }
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
176
 
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
-
211
- // /**
212
- // * 自定义事件埋点
213
- // * @param eventId 当前统计的事件ID
214
- // * @param eventData 为当前事件的属性和取值(键值对),不能为空,值可以是对象
215
- // */
216
- // static sendEventObject(eventId: string, eventData: Object) {
217
- // return QuicktrackingAnalyticsModule.sendEventObject(eventId, eventData);
218
- // }
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
+ }
219
189
 
220
- // /**
221
- // * 设置关注事件是否触发
222
- // * @param eventList 事件list
223
- // */
224
- // static setFirstLaunchEvent<T>(eventList: Array<T>) {
225
- // return QuicktrackingAnalyticsModule.setFirstLaunchEvent(eventList);
226
- // }
190
+ /**
191
+ * SDK正式初始化
192
+ * @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
193
+ * @param channel 下载渠道
194
+ * @description 请务必在用户同意隐私政策后,再初始化SDK,务必调用。
195
+ */
196
+ static init(appKey, channel) {
197
+ QuicktrackingAnalyticsModule.initWithAppkey(appKey, channel);
198
+ }
227
199
  }
228
200
  exports.QT = QT;
229
201
  //# sourceMappingURL=index.js.map
@@ -72,9 +72,10 @@ export class QT {
72
72
  /**
73
73
  * 注册一个全局事件属性
74
74
  * @param property 要注册的全局属性
75
- * @description 注册全局属性后,后续触发的所有事件都将自动包含这些属性;
76
- * 且这些属性及属性值存入缓存,APP退出后清除。
77
- * 在分析数据时,可根据此属性进行查看和筛选。
75
+ * @description
76
+ ** 注册全局属性后,后续触发的所有事件都将自动包含这些属性;
77
+ ** 且这些属性及属性值存入缓存,APP退出后清除。
78
+ ** 在分析数据时,可根据此属性进行查看和筛选。
78
79
  */
79
80
  static registerGlobalProperty(gp) {
80
81
  if (Platform.OS === 'ios') {
@@ -166,57 +167,28 @@ export class QT {
166
167
  static profileSignOff() {
167
168
  QuicktrackingAnalyticsModule.profileSignOff();
168
169
  }
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
170
 
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
-
205
- // /**
206
- // * 自定义事件埋点
207
- // * @param eventId 当前统计的事件ID
208
- // * @param eventData 为当前事件的属性和取值(键值对),不能为空,值可以是对象
209
- // */
210
- // static sendEventObject(eventId: string, eventData: Object) {
211
- // return QuicktrackingAnalyticsModule.sendEventObject(eventId, eventData);
212
- // }
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
+ }
213
183
 
214
- // /**
215
- // * 设置关注事件是否触发
216
- // * @param eventList 事件list
217
- // */
218
- // static setFirstLaunchEvent<T>(eventList: Array<T>) {
219
- // return QuicktrackingAnalyticsModule.setFirstLaunchEvent(eventList);
220
- // }
184
+ /**
185
+ * SDK正式初始化
186
+ * @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
187
+ * @param channel 下载渠道
188
+ * @description 请务必在用户同意隐私政策后,再初始化SDK,务必调用。
189
+ */
190
+ static init(appKey, channel) {
191
+ QuicktrackingAnalyticsModule.initWithAppkey(appKey, channel);
192
+ }
221
193
  }
222
194
  //# sourceMappingURL=index.js.map
@@ -19,7 +19,7 @@ export declare class QT {
19
19
  * @param eventId 当前统计的事件ID
20
20
  * @param params 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对
21
21
  */
22
- static sendEvent(eventId: string, params: EventParams): void;
22
+ static sendEvent(eventId: string, params?: EventParams): void;
23
23
  /**
24
24
  * 桥接事件埋点
25
25
  * @param data H5转发事件的日志体
@@ -28,9 +28,10 @@ export declare class QT {
28
28
  /**
29
29
  * 注册一个全局事件属性
30
30
  * @param property 要注册的全局属性
31
- * @description 注册全局属性后,后续触发的所有事件都将自动包含这些属性;
32
- * 且这些属性及属性值存入缓存,APP退出后清除。
33
- * 在分析数据时,可根据此属性进行查看和筛选。
31
+ * @description
32
+ ** 注册全局属性后,后续触发的所有事件都将自动包含这些属性;
33
+ ** 且这些属性及属性值存入缓存,APP退出后清除。
34
+ ** 在分析数据时,可根据此属性进行查看和筛选。
34
35
  */
35
36
  static registerGlobalProperty(gp: GlobalProperty): void;
36
37
  /**
@@ -61,5 +62,22 @@ export declare class QT {
61
62
  * 账号登出时需调用此接口,调用之后不再发送账号相关内容。
62
63
  */
63
64
  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
+ /**
76
+ * SDK正式初始化
77
+ * @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
78
+ * @param channel 下载渠道
79
+ * @description 请务必在用户同意隐私政策后,再初始化SDK,务必调用。
80
+ */
81
+ static init(appKey: string, channel: string): void;
64
82
  }
65
83
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-quicktracking-analytics-module",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "QuickTracking ReactNative SDK",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/index.tsx CHANGED
@@ -29,7 +29,7 @@ export class QT {
29
29
  * @param eventId 当前统计的事件ID
30
30
  * @param params 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对
31
31
  */
32
- static sendEvent(eventId: string, params: EventParams) {
32
+ static sendEvent(eventId: string, params?: EventParams) {
33
33
  if (params) {
34
34
  QuicktrackingAnalyticsModule.onEventObject(eventId, params);
35
35
  } else {
@@ -80,9 +80,10 @@ export class QT {
80
80
  /**
81
81
  * 注册一个全局事件属性
82
82
  * @param property 要注册的全局属性
83
- * @description 注册全局属性后,后续触发的所有事件都将自动包含这些属性;
84
- * 且这些属性及属性值存入缓存,APP退出后清除。
85
- * 在分析数据时,可根据此属性进行查看和筛选。
83
+ * @description
84
+ ** 注册全局属性后,后续触发的所有事件都将自动包含这些属性;
85
+ ** 且这些属性及属性值存入缓存,APP退出后清除。
86
+ ** 在分析数据时,可根据此属性进行查看和筛选。
86
87
  */
87
88
  static registerGlobalProperty(gp: GlobalProperty) {
88
89
  if (Platform.OS === 'ios') {
@@ -174,56 +175,27 @@ export class QT {
174
175
  static profileSignOff() {
175
176
  QuicktrackingAnalyticsModule.profileSignOff();
176
177
  }
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
178
 
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
-
213
- // /**
214
- // * 自定义事件埋点
215
- // * @param eventId 当前统计的事件ID
216
- // * @param eventData 为当前事件的属性和取值(键值对),不能为空,值可以是对象
217
- // */
218
- // static sendEventObject(eventId: string, eventData: Object) {
219
- // return QuicktrackingAnalyticsModule.sendEventObject(eventId, eventData);
220
- // }
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
+ }
221
191
 
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
  }