react-native-quicktracking-analytics-module 2.0.1 → 2.1.0
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 +1 -1
- package/QuicktrackingAnalyticsModule.podspec +29 -0
- package/README.md +211 -151
- package/android/build.gradle +41 -103
- package/android/gradle.properties +5 -5
- package/android/src/main/AndroidManifest.xml +1 -2
- package/android/src/main/AndroidManifestNew.xml +2 -0
- package/android/src/main/java/com/quicktrackinganalyticsmodule/QTSDKManager.kt +112 -0
- package/android/src/main/java/com/quicktrackinganalyticsmodule/QuicktrackingAnalyticsModuleModule.kt +259 -0
- package/android/src/main/java/com/quicktrackinganalyticsmodule/QuicktrackingAnalyticsModulePackage.kt +17 -0
- package/android/src/main/java/com/quicktrackinganalyticsmodule/property/QTViewProperties.kt +84 -0
- package/android/src/main/java/com/quicktrackinganalyticsmodule/utils/QTLog.kt +119 -0
- package/android/src/main/java/com/quicktrackinganalyticsmodule/utils/RNPropertyManager.kt +35 -0
- package/android/src/main/java/com/quicktrackinganalyticsmodule/utils/RNTouchTargetHelper.kt +162 -0
- package/android/src/main/java/com/quicktrackinganalyticsmodule/utils/RNUtils.kt +170 -0
- package/android/src/main/java/com/quicktrackinganalyticsmodule/utils/RNViewUtils.kt +233 -0
- package/ios/QuicktrackingAnalyticsModule.h +1 -4
- package/ios/{QuicktrackingAnalyticsModule.m → QuicktrackingAnalyticsModule.mm} +144 -110
- package/lib/commonjs/hook.js +564 -0
- package/lib/commonjs/hook.js.map +1 -0
- package/lib/commonjs/index.js +276 -166
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/module/hook.js +564 -0
- package/lib/module/hook.js.map +1 -0
- package/lib/module/index.js +253 -164
- package/lib/module/index.js.map +1 -0
- package/lib/typescript/index.d.ts +120 -79
- package/lib/typescript/index.d.ts.map +1 -0
- package/package.json +83 -71
- package/src/hook.js +3 -3
- package/src/index.tsx +266 -169
- package/android/.gradle/7.4/checksums/checksums.lock +0 -0
- package/android/.gradle/7.4/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/7.4/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/7.4/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/7.4/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/7.4/fileChanges/last-build.bin +0 -0
- package/android/.gradle/7.4/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/7.4/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/7.4/fileHashes/resourceHashesCache.bin +0 -0
- package/android/.gradle/7.4/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/.idea/compiler.xml +0 -6
- package/android/.idea/gradle.xml +0 -19
- package/android/.idea/jarRepositories.xml +0 -35
- package/android/.idea/libraries/Gradle__androidx_activity_activity_1_2_4_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_3_0.xml +0 -11
- package/android/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_1_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_4_1_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_4_1_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml +0 -11
- package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_autofill_autofill_1_1_0_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml +0 -11
- package/android/.idea/libraries/Gradle__androidx_core_core_1_7_0_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_3_6_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_4_0.xml +0 -11
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_3_1_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_4_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_3_1_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_3_1_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_1_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_2_2.xml +0 -13
- package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_5_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_5_0_aar.xml +0 -18
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_5_0_aar.xml +0 -18
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_5_0_aar.xml +0 -18
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_5_0_aar.xml +0 -18
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_native_2_5_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_5_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_ashmem_2_5_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_java_2_5_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_native_2_5_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_5_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_5_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_ui_common_2_5_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_18_0.xml +0 -13
- package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_70_6_debug_aar.xml +0 -14
- package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_10_4.xml +0 -13
- package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_10_4.xml +0 -13
- package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_10_4_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_19_0.xml +0 -13
- package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +0 -13
- package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_4_9_2.xml +0 -13
- package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_4_9_2.xml +0 -13
- package/android/.idea/libraries/Gradle__com_squareup_okio_okio_2_9_0.xml +0 -13
- package/android/.idea/libraries/Gradle__com_umeng_umsdk_qt_px_common_1_4_0_PX_aar.xml +0 -11
- package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +0 -13
- package/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml +0 -13
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_annotations_jvm_1_3_72.xml +0 -13
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_6_10.xml +0 -13
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_10.xml +0 -13
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_6_10.xml +0 -13
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_6_10.xml +0 -13
- package/android/.idea/misc.xml +0 -9
- package/android/.idea/modules/android.iml +0 -104
- package/android/.idea/modules.xml +0 -8
- package/android/.idea/vcs.xml +0 -6
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +0 -5
- package/android/gradlew +0 -234
- package/android/gradlew.bat +0 -89
- package/android/local.properties +0 -8
- package/android/src/main/java/com/reactnativequicktrackinganalyticsmodule/QTSDKManager.java +0 -93
- package/android/src/main/java/com/reactnativequicktrackinganalyticsmodule/QuicktrackingAnalyticsModule.java +0 -242
- package/android/src/main/java/com/reactnativequicktrackinganalyticsmodule/QuicktrackingAnalyticsModulePackage.java +0 -28
- package/android/src/main/java/com/reactnativequicktrackinganalyticsmodule/property/QTViewProperties.java +0 -48
- package/android/src/main/java/com/reactnativequicktrackinganalyticsmodule/utils/QTLog.java +0 -122
- package/android/src/main/java/com/reactnativequicktrackinganalyticsmodule/utils/RNPropertyManager.java +0 -29
- package/android/src/main/java/com/reactnativequicktrackinganalyticsmodule/utils/RNTouchTargetHelper.java +0 -139
- package/android/src/main/java/com/reactnativequicktrackinganalyticsmodule/utils/RNUtils.java +0 -188
- package/android/src/main/java/com/reactnativequicktrackinganalyticsmodule/utils/RNViewUtils.java +0 -148
- package/ios/QuicktrackingAnalyticsModule.xcodeproj/project.pbxproj +0 -324
- package/ios/QuicktrackingAnalyticsModule.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/ios/QuicktrackingAnalyticsModule.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/ios/QuicktrackingAnalyticsModule.xcodeproj/project.xcworkspace/xcuserdata/yuzhao.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/QuicktrackingAnalyticsModule.xcodeproj/xcuserdata/yuzhao.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
- package/ios/QuicktrackingAnalyticsModule.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/react-native-quicktracking-analytics-module.podspec +0 -37
package/src/index.tsx
CHANGED
|
@@ -1,210 +1,307 @@
|
|
|
1
1
|
import { NativeModules, Platform } from 'react-native';
|
|
2
|
+
|
|
3
|
+
type GlobalProperty = Record<string, string | number | string[]>;
|
|
4
|
+
type EventParams = Record<string, string | number | string[]>;
|
|
5
|
+
|
|
2
6
|
const QuicktrackingAnalyticsModule = NativeModules.QuicktrackingAnalyticsModule;
|
|
3
7
|
|
|
4
|
-
|
|
5
|
-
|
|
8
|
+
//****************初始化相关**************** */
|
|
9
|
+
/**
|
|
10
|
+
* SDK正式初始化
|
|
11
|
+
* @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
|
|
12
|
+
* @param channel 下载渠道
|
|
13
|
+
* @description 请务必在用户同意隐私政策后,再初始化SDK,务必调用。
|
|
14
|
+
* !!!
|
|
15
|
+
* 1. SDK的初始化需要在用户同意隐私政策后,再初始化SDK,务必调用。
|
|
16
|
+
* 2. 且必须在主线程中调用,iOS端强依赖主线程, Android端建议在主线程中初始化SDK,否则可能会导致数据不准确。
|
|
17
|
+
* 3. 调用初始化SDK能力之前,需要调用 setTrackDomain 方法设置收数域名。
|
|
18
|
+
*/
|
|
19
|
+
export function init(appKey: string, channel: string) {
|
|
20
|
+
QuicktrackingAnalyticsModule.initWithAppkey(appKey, channel);
|
|
21
|
+
}
|
|
6
22
|
|
|
7
23
|
/**
|
|
8
|
-
|
|
24
|
+
* SDK预初始化方法
|
|
25
|
+
* @param appKey QuickTracking后台提供的唯一key值,请勿泄露给第三方
|
|
26
|
+
* @param channel 下载渠道
|
|
27
|
+
* @description 仅Android端需要预初始化方法
|
|
28
|
+
* 1. 预初始化方法可以在用户同意隐私政策之前调用。
|
|
29
|
+
* 2. 请在主线程中完成预初始化方法的调用
|
|
9
30
|
*/
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
static onPageStart(pageName: string) {
|
|
16
|
-
QuicktrackingAnalyticsModule.onPageStart(pageName);
|
|
31
|
+
export function preInit(appKey: string, channel: string) {
|
|
32
|
+
if (Platform.OS === 'android') {
|
|
33
|
+
QuicktrackingAnalyticsModule.preInit(appKey, channel);
|
|
34
|
+
} else {
|
|
35
|
+
console.warn('preInit only support Android');
|
|
17
36
|
}
|
|
37
|
+
}
|
|
18
38
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
39
|
+
/**
|
|
40
|
+
* 设置SDK的收数域名
|
|
41
|
+
* @param mainTrackDomain SDK的主收数域名,例如:https://log.quicktracking.cn
|
|
42
|
+
* @param subTrackDomain SDK的副收数域名,例如:https://log.quicktracking.cn
|
|
43
|
+
* @description 设置SDK的收数域名, 调用SDK init 初始化API之前需要先设置收数域名。
|
|
44
|
+
*/
|
|
45
|
+
export function setTrackDomain(
|
|
46
|
+
mainTrackDomain: string,
|
|
47
|
+
subTrackDomain: string
|
|
48
|
+
) {
|
|
49
|
+
QuicktrackingAnalyticsModule.setTrackDomain(mainTrackDomain, subTrackDomain);
|
|
50
|
+
}
|
|
26
51
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
52
|
+
/**
|
|
53
|
+
* SDK开启日志
|
|
54
|
+
* @param enable 日志开关
|
|
55
|
+
* @description SDK日志开关
|
|
56
|
+
*/
|
|
57
|
+
export function enableLog(enable: boolean) {
|
|
58
|
+
QuicktrackingAnalyticsModule.enableLog(enable);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
//*******************埋点相关*************** */
|
|
62
|
+
/**
|
|
63
|
+
* 页面浏览事件埋点-打开页面
|
|
64
|
+
* @param pageName 页面编码
|
|
65
|
+
*/
|
|
66
|
+
export function onPageStart(pageName: string) {
|
|
67
|
+
QuicktrackingAnalyticsModule.onPageStart(pageName);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* 页面浏览事件埋点-离开页面
|
|
72
|
+
* @param pageName 页面编码
|
|
73
|
+
*/
|
|
74
|
+
export function onPageEnd(pageName: string) {
|
|
75
|
+
QuicktrackingAnalyticsModule.onPageEnd(pageName);
|
|
76
|
+
}
|
|
35
77
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
78
|
+
/**
|
|
79
|
+
* 上传页面属性
|
|
80
|
+
* @param pageName 页面编码
|
|
81
|
+
* @param params 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对
|
|
82
|
+
*/
|
|
83
|
+
export function uploadPageProperties(pageName: string, params: EventParams) {
|
|
84
|
+
QuicktrackingAnalyticsModule.uploadPageProperties(pageName, params);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* 自定义事件埋点
|
|
89
|
+
* @param eventId 当前统计的事件编码
|
|
90
|
+
* @param params 对当前事件的参数描述,定义为“参数名:参数值”的“<键-值>”对
|
|
91
|
+
* @param pageName 当前统计事件的页面编码
|
|
92
|
+
*/
|
|
93
|
+
export function sendEvent(
|
|
94
|
+
eventId: string,
|
|
95
|
+
params?: EventParams,
|
|
96
|
+
pageName?: string
|
|
97
|
+
) {
|
|
98
|
+
if (params) {
|
|
99
|
+
if (pageName) {
|
|
100
|
+
if (Platform.OS === 'android') {
|
|
45
101
|
QuicktrackingAnalyticsModule.onEventWithParamsAndPageName(
|
|
46
102
|
eventId,
|
|
47
103
|
params,
|
|
48
104
|
pageName
|
|
49
105
|
);
|
|
50
106
|
} else {
|
|
51
|
-
QuicktrackingAnalyticsModule.
|
|
107
|
+
QuicktrackingAnalyticsModule.onEventWithParamsAndPageName(
|
|
108
|
+
eventId,
|
|
109
|
+
pageName,
|
|
110
|
+
params
|
|
111
|
+
);
|
|
52
112
|
}
|
|
53
113
|
} else {
|
|
54
|
-
|
|
55
|
-
QuicktrackingAnalyticsModule.onEventWithPageName(eventId, pageName);
|
|
56
|
-
} else {
|
|
57
|
-
QuicktrackingAnalyticsModule.onEvent(eventId);
|
|
58
|
-
}
|
|
114
|
+
QuicktrackingAnalyticsModule.onEventWithParams(eventId, params);
|
|
59
115
|
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
*/
|
|
66
|
-
static sendEventForH5(data: string) {
|
|
67
|
-
try {
|
|
68
|
-
const json = JSON.parse(data);
|
|
69
|
-
if (Platform.OS === 'ios') {
|
|
70
|
-
const eventId = json.sdkArgs && json.sdkArgs.id;
|
|
71
|
-
let params: any = {};
|
|
72
|
-
params.ap = json.ap || {};
|
|
73
|
-
params.cusp = json.cusp || {};
|
|
74
|
-
params = Object.assign(params, json.sdkArgs);
|
|
75
|
-
QuicktrackingAnalyticsModule.onEventForH5(eventId, params);
|
|
76
|
-
} else if (Platform.OS === 'android') {
|
|
77
|
-
if (json.sdkArgs.id === '$$_page_start') {
|
|
78
|
-
QuicktrackingAnalyticsModule.onEventForH5(
|
|
79
|
-
JSON.stringify({
|
|
80
|
-
params: json,
|
|
81
|
-
methodName: 'sendPV',
|
|
82
|
-
sid: `${Date.now()}`,
|
|
83
|
-
className: 'Umeng4Aplus',
|
|
84
|
-
})
|
|
85
|
-
);
|
|
86
|
-
} else {
|
|
87
|
-
QuicktrackingAnalyticsModule.onEventForH5(
|
|
88
|
-
JSON.stringify({
|
|
89
|
-
params: json,
|
|
90
|
-
methodName: 'sendEvent',
|
|
91
|
-
sid: `${Date.now()}`,
|
|
92
|
-
className: 'Umeng4Aplus',
|
|
93
|
-
})
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
} catch (e) {
|
|
98
|
-
console.log(e);
|
|
116
|
+
} else {
|
|
117
|
+
if (pageName) {
|
|
118
|
+
QuicktrackingAnalyticsModule.onEventWithPageName(eventId, pageName);
|
|
119
|
+
} else {
|
|
120
|
+
QuicktrackingAnalyticsModule.onEvent(eventId);
|
|
99
121
|
}
|
|
100
122
|
}
|
|
123
|
+
}
|
|
101
124
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
*/
|
|
110
|
-
static registerGlobalProperty(gp: GlobalProperty) {
|
|
125
|
+
/**
|
|
126
|
+
* 桥接事件埋点
|
|
127
|
+
* @param data H5转发事件的日志体
|
|
128
|
+
*/
|
|
129
|
+
export function sendEventForH5(data: string) {
|
|
130
|
+
try {
|
|
131
|
+
const json = JSON.parse(data);
|
|
111
132
|
if (Platform.OS === 'ios') {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
133
|
+
const eventId = json.sdkArgs && json.sdkArgs.id;
|
|
134
|
+
let params: any = {};
|
|
135
|
+
params.ap = json.ap || {};
|
|
136
|
+
params.cusp = json.cusp || {};
|
|
137
|
+
params = Object.assign(params, json.sdkArgs);
|
|
138
|
+
QuicktrackingAnalyticsModule.onEventForH5(eventId, params);
|
|
139
|
+
} else if (Platform.OS === 'android') {
|
|
140
|
+
if (json.sdkArgs.id === '$$_page_start') {
|
|
141
|
+
QuicktrackingAnalyticsModule.onEventForH5(
|
|
142
|
+
JSON.stringify({
|
|
143
|
+
params: json,
|
|
144
|
+
methodName: 'sendPV',
|
|
145
|
+
sid: `${Date.now()}`,
|
|
146
|
+
className: 'Umeng4Aplus',
|
|
147
|
+
})
|
|
148
|
+
);
|
|
149
|
+
} else {
|
|
150
|
+
QuicktrackingAnalyticsModule.onEventForH5(
|
|
151
|
+
JSON.stringify({
|
|
152
|
+
params: json,
|
|
153
|
+
methodName: 'sendEvent',
|
|
154
|
+
sid: `${Date.now()}`,
|
|
155
|
+
className: 'Umeng4Aplus',
|
|
156
|
+
})
|
|
157
|
+
);
|
|
158
|
+
}
|
|
123
159
|
}
|
|
160
|
+
} catch (e) {
|
|
161
|
+
console.log(e);
|
|
124
162
|
}
|
|
163
|
+
}
|
|
125
164
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
165
|
+
//*******************属性相关******************* */
|
|
166
|
+
/**
|
|
167
|
+
* 注册一个全局事件属性
|
|
168
|
+
* @param property 要注册的全局属性
|
|
169
|
+
* @description
|
|
170
|
+
* 注册全局属性后,后续触发的所有事件都将自动包含这些属性;
|
|
171
|
+
* 且这些属性及属性值存入缓存,APP退出后清除。
|
|
172
|
+
* 在分析数据时,可根据此属性进行查看和筛选。
|
|
173
|
+
*/
|
|
174
|
+
export function registerGlobalProperty(gp: GlobalProperty) {
|
|
175
|
+
if (Platform.OS === 'ios') {
|
|
176
|
+
Object.keys(gp).forEach((_propertyName, propertyValue) => {
|
|
177
|
+
if (!propertyValue && propertyValue !== 0) {
|
|
178
|
+
console.warn('属性值不能为null或undefined');
|
|
179
|
+
} else if (typeof propertyValue === 'object') {
|
|
180
|
+
console.warn('全局属性只能是单层对象');
|
|
181
|
+
} else {
|
|
182
|
+
QuicktrackingAnalyticsModule.registerGlobalProperty(gp);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
} else {
|
|
186
|
+
QuicktrackingAnalyticsModule.registerGlobalProperties(gp);
|
|
132
187
|
}
|
|
188
|
+
}
|
|
133
189
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
propertyName
|
|
142
|
-
);
|
|
143
|
-
return value;
|
|
144
|
-
} catch (e) {
|
|
145
|
-
console.log(e);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
190
|
+
/**
|
|
191
|
+
* 删除一个全局事件属性
|
|
192
|
+
* @param propertyName 要删除的全局事件属性名,只支持大小写字母、数字及下划线
|
|
193
|
+
*/
|
|
194
|
+
export function unregisterGlobalProperty(propertyName: string) {
|
|
195
|
+
QuicktrackingAnalyticsModule.unregisterGlobalProperty(propertyName);
|
|
196
|
+
}
|
|
148
197
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
198
|
+
/**
|
|
199
|
+
* 根据Key获取单个全局属性
|
|
200
|
+
* @param propertyName 属性名,只支持大小写字母、数字及下划线!
|
|
201
|
+
*/
|
|
202
|
+
export const getGlobalProperty = async (propertyName: string) => {
|
|
203
|
+
try {
|
|
204
|
+
const value =
|
|
205
|
+
await QuicktrackingAnalyticsModule.getGlobalProperty(propertyName);
|
|
206
|
+
return value;
|
|
207
|
+
} catch (e) {
|
|
208
|
+
console.log(e);
|
|
159
209
|
}
|
|
210
|
+
};
|
|
160
211
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
212
|
+
/**
|
|
213
|
+
* 获取所有的全局事件属性, 返回包含所有全局事件属性的JSONObject
|
|
214
|
+
*/
|
|
215
|
+
export const getGlobalProperties = async () => {
|
|
216
|
+
try {
|
|
217
|
+
const gp = await QuicktrackingAnalyticsModule.getGlobalProperties();
|
|
218
|
+
return gp;
|
|
219
|
+
} catch (e) {
|
|
220
|
+
console.log(e);
|
|
166
221
|
}
|
|
222
|
+
};
|
|
167
223
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
224
|
+
/**
|
|
225
|
+
* 清空全部全局事件属性。
|
|
226
|
+
*/
|
|
227
|
+
export const clearGlobalProperties = () => {
|
|
228
|
+
QuicktrackingAnalyticsModule.clearGlobalProperties();
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
//*********************用户相关************************* */
|
|
232
|
+
/**
|
|
233
|
+
* 账号登录时调用此接口,用于统计应用自身的账号
|
|
234
|
+
* @param ID 用户账号ID,长度小于64字节
|
|
235
|
+
* @param provider
|
|
236
|
+
*/
|
|
237
|
+
export const profileSignIn = (ID: string, Provider?: string) => {
|
|
238
|
+
switch (Platform.OS) {
|
|
239
|
+
case 'android': {
|
|
240
|
+
if (Provider) {
|
|
241
|
+
QuicktrackingAnalyticsModule.profileSignInWithProvider(ID, Provider);
|
|
242
|
+
} else {
|
|
243
|
+
QuicktrackingAnalyticsModule.profileSignIn(ID);
|
|
182
244
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
case 'ios': {
|
|
248
|
+
if (Provider) {
|
|
249
|
+
QuicktrackingAnalyticsModule.profileSignIn(ID);
|
|
250
|
+
} else {
|
|
251
|
+
QuicktrackingAnalyticsModule.profileSignIn(ID, null);
|
|
190
252
|
}
|
|
253
|
+
break;
|
|
191
254
|
}
|
|
192
255
|
}
|
|
256
|
+
};
|
|
193
257
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
258
|
+
/**
|
|
259
|
+
* 账号登出时需调用此接口,调用之后不再发送账号相关内容。
|
|
260
|
+
*/
|
|
261
|
+
export const profileSignOff = () => {
|
|
262
|
+
QuicktrackingAnalyticsModule.profileSignOff();
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
//*******************其他 ************************* */
|
|
266
|
+
/**
|
|
267
|
+
* 设置应用版本
|
|
268
|
+
*/
|
|
269
|
+
export const setAppVersion = (version: string, versionCode: number) => {
|
|
270
|
+
if (Platform.OS === 'android') {
|
|
271
|
+
QuicktrackingAnalyticsModule.setAppVersion(version, versionCode);
|
|
272
|
+
} else {
|
|
273
|
+
QuicktrackingAnalyticsModule.setAppVersion(version);
|
|
199
274
|
}
|
|
275
|
+
};
|
|
200
276
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
277
|
+
/**
|
|
278
|
+
* 关闭SDK
|
|
279
|
+
*/
|
|
280
|
+
export const disableSDK = () => {
|
|
281
|
+
QuicktrackingAnalyticsModule.disableSDK();
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* 开启SDK
|
|
286
|
+
*/
|
|
287
|
+
export const enableSDK = () => {
|
|
288
|
+
QuicktrackingAnalyticsModule.enableSDK();
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* 自定义设备ID
|
|
293
|
+
*/
|
|
294
|
+
export const setCustomDeviceId = (deviceId: string) => {
|
|
295
|
+
QuicktrackingAnalyticsModule.setCustomDeviceId(deviceId);
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* 读取设备ID
|
|
300
|
+
*/
|
|
301
|
+
export const getDeviceId = async () => {
|
|
302
|
+
try {
|
|
303
|
+
return await QuicktrackingAnalyticsModule.getDeviceId();
|
|
304
|
+
} catch (error) {
|
|
305
|
+
console.log(error);
|
|
209
306
|
}
|
|
210
|
-
}
|
|
307
|
+
};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
package/android/.idea/gradle.xml
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="GradleMigrationSettings" migrationVersion="1" />
|
|
4
|
-
<component name="GradleSettings">
|
|
5
|
-
<option name="linkedExternalProjectsSettings">
|
|
6
|
-
<GradleProjectSettings>
|
|
7
|
-
<option name="testRunner" value="GRADLE" />
|
|
8
|
-
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
|
9
|
-
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
|
10
|
-
<option name="modules">
|
|
11
|
-
<set>
|
|
12
|
-
<option value="$PROJECT_DIR$" />
|
|
13
|
-
</set>
|
|
14
|
-
</option>
|
|
15
|
-
<option name="resolveModulePerSourceSet" value="false" />
|
|
16
|
-
</GradleProjectSettings>
|
|
17
|
-
</option>
|
|
18
|
-
</component>
|
|
19
|
-
</project>
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="RemoteRepositoriesConfiguration">
|
|
4
|
-
<remote-repository>
|
|
5
|
-
<option name="id" value="central" />
|
|
6
|
-
<option name="name" value="Maven Central repository" />
|
|
7
|
-
<option name="url" value="https://repo1.maven.org/maven2" />
|
|
8
|
-
</remote-repository>
|
|
9
|
-
<remote-repository>
|
|
10
|
-
<option name="id" value="jboss.community" />
|
|
11
|
-
<option name="name" value="JBoss Community repository" />
|
|
12
|
-
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
|
13
|
-
</remote-repository>
|
|
14
|
-
<remote-repository>
|
|
15
|
-
<option name="id" value="React Native sources" />
|
|
16
|
-
<option name="name" value="React Native sources" />
|
|
17
|
-
<option name="url" value="file:$PROJECT_DIR$/../node_modules/react-native/android/" />
|
|
18
|
-
</remote-repository>
|
|
19
|
-
<remote-repository>
|
|
20
|
-
<option name="id" value="MavenRepo" />
|
|
21
|
-
<option name="name" value="MavenRepo" />
|
|
22
|
-
<option name="url" value="https://repo.maven.apache.org/maven2/" />
|
|
23
|
-
</remote-repository>
|
|
24
|
-
<remote-repository>
|
|
25
|
-
<option name="id" value="maven" />
|
|
26
|
-
<option name="name" value="maven" />
|
|
27
|
-
<option name="url" value="https://repo1.maven.org/maven2/" />
|
|
28
|
-
</remote-repository>
|
|
29
|
-
<remote-repository>
|
|
30
|
-
<option name="id" value="Google2" />
|
|
31
|
-
<option name="name" value="Google2" />
|
|
32
|
-
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
|
|
33
|
-
</remote-repository>
|
|
34
|
-
</component>
|
|
35
|
-
</project>
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<component name="libraryTable">
|
|
2
|
-
<library name="Gradle: androidx.activity:activity:1.2.4@aar">
|
|
3
|
-
<ANNOTATIONS>
|
|
4
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-3/bb74b7ad94f6ce8d9e3d25bec12b1637/transformed/activity-1.2.4/annotations.zip!/" />
|
|
5
|
-
</ANNOTATIONS>
|
|
6
|
-
<CLASSES>
|
|
7
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-3/bb74b7ad94f6ce8d9e3d25bec12b1637/transformed/activity-1.2.4/jars/classes.jar!/" />
|
|
8
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-3/bb74b7ad94f6ce8d9e3d25bec12b1637/transformed/activity-1.2.4/res" />
|
|
9
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-3/bb74b7ad94f6ce8d9e3d25bec12b1637/transformed/activity-1.2.4/AndroidManifest.xml" />
|
|
10
|
-
</CLASSES>
|
|
11
|
-
<JAVADOC />
|
|
12
|
-
<SOURCES>
|
|
13
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.2.4/2572345ff3e71e4e97140b01423cb80765b5b3e5/activity-1.2.4-sources.jar!/" />
|
|
14
|
-
</SOURCES>
|
|
15
|
-
</library>
|
|
16
|
-
</component>
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
<component name="libraryTable">
|
|
2
|
-
<library name="Gradle: androidx.annotation:annotation:1.3.0">
|
|
3
|
-
<CLASSES>
|
|
4
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.3.0/21f49f5f9b85fc49de712539f79123119740595/annotation-1.3.0.jar!/" />
|
|
5
|
-
</CLASSES>
|
|
6
|
-
<JAVADOC />
|
|
7
|
-
<SOURCES>
|
|
8
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.3.0/661529c7dfdacef81b03e6dd27e5daa73793a9b2/annotation-1.3.0-sources.jar!/" />
|
|
9
|
-
</SOURCES>
|
|
10
|
-
</library>
|
|
11
|
-
</component>
|
package/android/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_1_0_aar.xml
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<component name="libraryTable">
|
|
2
|
-
<library name="Gradle: androidx.annotation:annotation-experimental:1.1.0@aar">
|
|
3
|
-
<CLASSES>
|
|
4
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-3/ac743670aec87abea45dd27e2451e301/transformed/annotation-experimental-1.1.0/jars/classes.jar!/" />
|
|
5
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-3/ac743670aec87abea45dd27e2451e301/transformed/annotation-experimental-1.1.0/res" />
|
|
6
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-3/ac743670aec87abea45dd27e2451e301/transformed/annotation-experimental-1.1.0/AndroidManifest.xml" />
|
|
7
|
-
</CLASSES>
|
|
8
|
-
<JAVADOC />
|
|
9
|
-
<SOURCES>
|
|
10
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation-experimental/1.1.0/238eb640abf1ca6c952c7cd2e9423fe7f715713f/annotation-experimental-1.1.0-sources.jar!/" />
|
|
11
|
-
</SOURCES>
|
|
12
|
-
</library>
|
|
13
|
-
</component>
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<component name="libraryTable">
|
|
2
|
-
<library name="Gradle: androidx.appcompat:appcompat:1.4.1@aar">
|
|
3
|
-
<ANNOTATIONS>
|
|
4
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-3/a8c77e43e9d8578426ce28bf52bc85cf/transformed/appcompat-1.4.1/annotations.zip!/" />
|
|
5
|
-
</ANNOTATIONS>
|
|
6
|
-
<CLASSES>
|
|
7
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-3/a8c77e43e9d8578426ce28bf52bc85cf/transformed/appcompat-1.4.1/jars/classes.jar!/" />
|
|
8
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-3/a8c77e43e9d8578426ce28bf52bc85cf/transformed/appcompat-1.4.1/res" />
|
|
9
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-3/a8c77e43e9d8578426ce28bf52bc85cf/transformed/appcompat-1.4.1/AndroidManifest.xml" />
|
|
10
|
-
</CLASSES>
|
|
11
|
-
<JAVADOC />
|
|
12
|
-
<SOURCES>
|
|
13
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.appcompat/appcompat/1.4.1/f9e48179ea0c6ac0080a277b9383f74523f56aa2/appcompat-1.4.1-sources.jar!/" />
|
|
14
|
-
</SOURCES>
|
|
15
|
-
</library>
|
|
16
|
-
</component>
|
package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_4_1_aar.xml
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<component name="libraryTable">
|
|
2
|
-
<library name="Gradle: androidx.appcompat:appcompat-resources:1.4.1@aar">
|
|
3
|
-
<CLASSES>
|
|
4
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-3/7ac1557c669ea38b6b2e2872852e4bc9/transformed/appcompat-resources-1.4.1/jars/classes.jar!/" />
|
|
5
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-3/7ac1557c669ea38b6b2e2872852e4bc9/transformed/appcompat-resources-1.4.1/res" />
|
|
6
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-3/7ac1557c669ea38b6b2e2872852e4bc9/transformed/appcompat-resources-1.4.1/AndroidManifest.xml" />
|
|
7
|
-
</CLASSES>
|
|
8
|
-
<JAVADOC />
|
|
9
|
-
<SOURCES>
|
|
10
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.appcompat/appcompat-resources/1.4.1/8f78838745a125dea62514f7b4f70e8776a6244e/appcompat-resources-1.4.1-sources.jar!/" />
|
|
11
|
-
</SOURCES>
|
|
12
|
-
</library>
|
|
13
|
-
</component>
|