react-native-quicktracking-analytics-module 1.0.0-beta.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/LICENSE +20 -0
- package/README.md +110 -0
- package/android/.gradle/7.4.2/checksums/checksums.lock +0 -0
- package/android/.gradle/7.4.2/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/7.4.2/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/7.4.2/fileChanges/last-build.bin +0 -0
- package/android/.gradle/7.4.2/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/7.4.2/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build.gradle +146 -0
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
- package/android/gradle.properties +5 -0
- package/android/gradlew +234 -0
- package/android/gradlew.bat +89 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/java/com/reactnativequicktrackinganalyticsmodule/MainApplication.java +47 -0
- package/android/src/main/java/com/reactnativequicktrackinganalyticsmodule/QuicktrackingAnalyticsModuleModule.java +151 -0
- package/android/src/main/java/com/reactnativequicktrackinganalyticsmodule/QuicktrackingAnalyticsModulePackage.java +28 -0
- package/ios/QuicktrackingAnalyticsModule.h +5 -0
- package/ios/QuicktrackingAnalyticsModule.m +147 -0
- package/ios/QuicktrackingAnalyticsModule.xcodeproj/project.pbxproj +282 -0
- package/ios/QuicktrackingAnalyticsModule.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
- package/ios/QuicktrackingAnalyticsModule.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/ios/QuicktrackingAnalyticsModule.xcodeproj/project.xcworkspace/xcuserdata/yuzhao.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/QuicktrackingAnalyticsModule.xcodeproj/xcuserdata/yuzhao.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
- package/lib/commonjs/index.js +219 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/module/index.js +212 -0
- package/lib/module/index.js.map +1 -0
- package/lib/typescript/index.d.ts +62 -0
- package/package.json +135 -0
- package/react-native-quicktracking-analytics-module.podspec +37 -0
- package/src/index.tsx +215 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
|
|
3
|
+
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
4
|
+
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
|
|
5
|
+
|
|
6
|
+
Pod::Spec.new do |s|
|
|
7
|
+
s.name = "react-native-quicktracking-analytics-module"
|
|
8
|
+
s.version = package["version"]
|
|
9
|
+
s.summary = package["description"]
|
|
10
|
+
s.homepage = package["homepage"]
|
|
11
|
+
s.license = package["license"]
|
|
12
|
+
s.authors = package["author"]
|
|
13
|
+
|
|
14
|
+
s.platforms = { :ios => "10.0" }
|
|
15
|
+
s.source = { :git => "http://gitlab.alibaba-inc.com/dt-f2e/react-native-quicktracking-analytics-module.git.git", :tag => "#{s.version}" }
|
|
16
|
+
|
|
17
|
+
s.source_files = "ios/**/*.{h,m,mm}"
|
|
18
|
+
|
|
19
|
+
s.dependency "React-Core"
|
|
20
|
+
s.dependency "QTCommon", "~> 1.3.8.PX"
|
|
21
|
+
|
|
22
|
+
# Don't install the dependencies when we run `pod install` in the old architecture.
|
|
23
|
+
if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
|
|
24
|
+
s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
|
|
25
|
+
s.pod_target_xcconfig = {
|
|
26
|
+
"HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
|
|
27
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
s.dependency "React-Codegen"
|
|
31
|
+
s.dependency "RCT-Folly"
|
|
32
|
+
s.dependency "RCTRequired"
|
|
33
|
+
s.dependency "RCTTypeSafety"
|
|
34
|
+
s.dependency "ReactCommon/turbomodule/core"
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
end
|
package/src/index.tsx
ADDED
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { NativeModules, Platform } from 'react-native';
|
|
2
|
+
const QuicktrackingAnalyticsModule = NativeModules.QuicktrackingAnalyticsModule;
|
|
3
|
+
/**
|
|
4
|
+
*引入 QuickTracking SDK
|
|
5
|
+
*/
|
|
6
|
+
export class QT {
|
|
7
|
+
/**
|
|
8
|
+
* 页面浏览事件埋点-打开页面
|
|
9
|
+
* @param pageName 页面名称
|
|
10
|
+
*/
|
|
11
|
+
static onPageStart(pageName: string) {
|
|
12
|
+
QuicktrackingAnalyticsModule.onPageStart(pageName);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 页面浏览事件埋点-离开页面
|
|
17
|
+
* @param pageName 页面名称
|
|
18
|
+
*/
|
|
19
|
+
static onPageEnd(pageName: string) {
|
|
20
|
+
QuicktrackingAnalyticsModule.onPageEnd(pageName);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* 自定义事件埋点
|
|
25
|
+
* @param eventId 当前统计的事件ID
|
|
26
|
+
* @param params 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对
|
|
27
|
+
*/
|
|
28
|
+
static sendEvent(eventId: string, params: any) {
|
|
29
|
+
if (params) {
|
|
30
|
+
QuicktrackingAnalyticsModule.onEventObject(eventId, params);
|
|
31
|
+
} else {
|
|
32
|
+
QuicktrackingAnalyticsModule.onEvent(eventId);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* 桥接事件埋点
|
|
38
|
+
* @param data H5转发事件的日志体
|
|
39
|
+
*/
|
|
40
|
+
static sendEventForH5(data: string) {
|
|
41
|
+
try {
|
|
42
|
+
const json = JSON.parse(data);
|
|
43
|
+
if (Platform.OS === 'ios') {
|
|
44
|
+
const eventId = json.sdkArgs && json.sdkArgs.id;
|
|
45
|
+
let params: any = {};
|
|
46
|
+
params.ap = json.ap || {};
|
|
47
|
+
params.cusp = json.cusp || {};
|
|
48
|
+
params = Object.assign(params, json.sdkArgs);
|
|
49
|
+
QuicktrackingAnalyticsModule.onEventForH5(eventId, params);
|
|
50
|
+
} else if (Platform.OS === 'android') {
|
|
51
|
+
if (json.sdkArgs.id === '$$_page_start') {
|
|
52
|
+
QuicktrackingAnalyticsModule.onEventForH5(
|
|
53
|
+
JSON.stringify({
|
|
54
|
+
params: json,
|
|
55
|
+
methodName: 'sendPV',
|
|
56
|
+
sid: `${Date.now()}`,
|
|
57
|
+
})
|
|
58
|
+
);
|
|
59
|
+
} else {
|
|
60
|
+
QuicktrackingAnalyticsModule.onEventForH5(
|
|
61
|
+
JSON.stringify({
|
|
62
|
+
params: json,
|
|
63
|
+
methodName: 'sendEvent',
|
|
64
|
+
sid: `${Date.now()}`,
|
|
65
|
+
})
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
} catch (e) {
|
|
70
|
+
console.log(e);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* 注册一个全局事件属性
|
|
76
|
+
* @param property 要注册的全局属性
|
|
77
|
+
* @description 注册全局属性后,后续触发的所有事件都将自动包含这些属性;
|
|
78
|
+
* 且这些属性及属性值存入缓存,APP退出后清除。
|
|
79
|
+
* 在分析数据时,可根据此属性进行查看和筛选。
|
|
80
|
+
*/
|
|
81
|
+
static registerGlobalProperty(gp: any) {
|
|
82
|
+
if (Platform.OS === 'ios') {
|
|
83
|
+
QuicktrackingAnalyticsModule.registerGlobalProperty(gp);
|
|
84
|
+
} else {
|
|
85
|
+
QuicktrackingAnalyticsModule.registerGlobalProperties(gp);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* 删除一个全局事件属性
|
|
91
|
+
* @param propertyName 要删除的全局事件属性名,只支持大小写字母、数字及下划线
|
|
92
|
+
*/
|
|
93
|
+
static unregisterGlobalProperty(propertyName: string) {
|
|
94
|
+
QuicktrackingAnalyticsModule.unregisterGlobalProperty(propertyName);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* 根据Key获取单个全局属性
|
|
99
|
+
* @param propertyName 属性名,只支持大小写字母、数字及下划线!
|
|
100
|
+
*/
|
|
101
|
+
static async getGlobalProperty(propertyName: string) {
|
|
102
|
+
try {
|
|
103
|
+
const value = await QuicktrackingAnalyticsModule.getGlobalProperty(
|
|
104
|
+
propertyName
|
|
105
|
+
);
|
|
106
|
+
return value;
|
|
107
|
+
} catch (e) {
|
|
108
|
+
console.log(e);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* 获取所有的全局事件属性, 返回包含所有全局事件属性的JSONObject
|
|
114
|
+
*/
|
|
115
|
+
static async getGlobalProperties() {
|
|
116
|
+
try {
|
|
117
|
+
const gp = await QuicktrackingAnalyticsModule.getGlobalProperties();
|
|
118
|
+
return gp;
|
|
119
|
+
} catch (e) {
|
|
120
|
+
console.log(e);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* 清空全部全局事件属性。
|
|
126
|
+
*/
|
|
127
|
+
static clearGlobalProperties() {
|
|
128
|
+
QuicktrackingAnalyticsModule.clearGlobalProperties();
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* 账号登录时调用此接口,用于统计应用自身的账号
|
|
133
|
+
* @param ID 用户账号ID,长度小于64字节
|
|
134
|
+
* @param provider
|
|
135
|
+
*/
|
|
136
|
+
static profileSignIn(ID: string, Provider?: string) {
|
|
137
|
+
switch (Platform.OS) {
|
|
138
|
+
case 'android': {
|
|
139
|
+
if (Provider) {
|
|
140
|
+
QuicktrackingAnalyticsModule.profileSignInWithProvider(ID, Provider);
|
|
141
|
+
} else {
|
|
142
|
+
QuicktrackingAnalyticsModule.profileSignIn(ID);
|
|
143
|
+
}
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
case 'ios': {
|
|
147
|
+
if (Provider) {
|
|
148
|
+
QuicktrackingAnalyticsModule.profileSignIn(ID);
|
|
149
|
+
} else {
|
|
150
|
+
QuicktrackingAnalyticsModule.profileSignIn(ID, null);
|
|
151
|
+
}
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* 账号登出时需调用此接口,调用之后不再发送账号相关内容。
|
|
159
|
+
*/
|
|
160
|
+
static profileSignOff() {
|
|
161
|
+
QuicktrackingAnalyticsModule.profileSignOff();
|
|
162
|
+
}
|
|
163
|
+
// /**
|
|
164
|
+
// * 自定义事件埋点
|
|
165
|
+
// * @param eventId 当前统计的事件ID
|
|
166
|
+
// * @param eventLabel 分类标签
|
|
167
|
+
// */
|
|
168
|
+
// static sendEventLabel(eventId: string, eventLabel: string) {
|
|
169
|
+
// return QuicktrackingAnalyticsModule.sendEventLabel(eventId, eventLabel);
|
|
170
|
+
// }
|
|
171
|
+
|
|
172
|
+
// /**
|
|
173
|
+
// * 自定义事件埋点
|
|
174
|
+
// * @param eventId 当前统计的事件ID
|
|
175
|
+
// * @param eventData 为当前事件的属性和取值(键值对),不能为空,如:{name:"Jack",gender:"man"}
|
|
176
|
+
// */
|
|
177
|
+
// static sendEventMap(eventId: string, eventData: Object) {
|
|
178
|
+
// return QuicktrackingAnalyticsModule.sendEventMap(eventId, eventData);
|
|
179
|
+
// }
|
|
180
|
+
|
|
181
|
+
// /**
|
|
182
|
+
// * 自定义事件埋点
|
|
183
|
+
// * @param eventId 当前统计的事件ID
|
|
184
|
+
// * @param eventData 为当前事件的属性和取值(键值对),不能为空,如:{name:"Jack",gender:"man"}
|
|
185
|
+
// * @param eventNum 用户每次触发的数值的分布情况,如事件持续时间、每次付款金额等
|
|
186
|
+
// */
|
|
187
|
+
// static sendEventMapAndCount(
|
|
188
|
+
// eventId: string,
|
|
189
|
+
// eventData: Object,
|
|
190
|
+
// eventNum: number
|
|
191
|
+
// ) {
|
|
192
|
+
// return QuicktrackingAnalyticsModule.sendEventMapAndCount(
|
|
193
|
+
// eventId,
|
|
194
|
+
// eventData,
|
|
195
|
+
// eventNum
|
|
196
|
+
// );
|
|
197
|
+
// }
|
|
198
|
+
|
|
199
|
+
// /**
|
|
200
|
+
// * 自定义事件埋点
|
|
201
|
+
// * @param eventId 当前统计的事件ID
|
|
202
|
+
// * @param eventData 为当前事件的属性和取值(键值对),不能为空,值可以是对象
|
|
203
|
+
// */
|
|
204
|
+
// static sendEventObject(eventId: string, eventData: Object) {
|
|
205
|
+
// return QuicktrackingAnalyticsModule.sendEventObject(eventId, eventData);
|
|
206
|
+
// }
|
|
207
|
+
|
|
208
|
+
// /**
|
|
209
|
+
// * 设置关注事件是否触发
|
|
210
|
+
// * @param eventList 事件list
|
|
211
|
+
// */
|
|
212
|
+
// static setFirstLaunchEvent<T>(eventList: Array<T>) {
|
|
213
|
+
// return QuicktrackingAnalyticsModule.setFirstLaunchEvent(eventList);
|
|
214
|
+
// }
|
|
215
|
+
}
|