@uxda/appkit 4.2.93 → 4.2.94
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/dist/index.js +1082 -22
- package/package.json +2 -1
- package/src/payment/components/RechargeView.vue +2 -1
- package/src/payment/types.ts +1 -0
- package/src/shared/index.ts +1 -0
- package/src/shared/tracking/README.md +509 -0
- package/src/shared/tracking/directives/index.ts +40 -0
- package/src/shared/tracking/directives/track-click.ts +142 -0
- package/src/shared/tracking/directives/track-page.ts +50 -0
- package/src/shared/tracking/directives/track-scroll.ts +116 -0
- package/src/shared/tracking/directives/track-search.ts +179 -0
- package/src/shared/tracking/examples/data-structure-example.ts +239 -0
- package/src/shared/tracking/examples/directive-tracking-example.vue +202 -0
- package/src/shared/tracking/examples/global-tracking-example.vue +25 -0
- package/src/shared/tracking/examples/page-tracking-template.vue +27 -0
- package/src/shared/tracking/examples/sdk-tracking-example.vue +33 -0
- package/src/shared/tracking/index.ts +5 -0
- package/src/shared/tracking/tracking-init.ts +214 -0
- package/src/shared/tracking/tracking-sdk.ts +986 -0
- package/src/shared/tracking/useAutoTracking.ts +108 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 自动埋点组合式函数 - 精简版
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { onUnmounted, ref } from 'vue'
|
|
6
|
+
import { useDidShow } from '@tarojs/taro'
|
|
7
|
+
import { trackingSDK, TrackingEventType } from './tracking-sdk'
|
|
8
|
+
|
|
9
|
+
// 自动埋点配置
|
|
10
|
+
interface AutoTrackingConfig {
|
|
11
|
+
trackPageView?: boolean // 是否自动跟踪页面访问
|
|
12
|
+
trackClicks?: boolean // 是否自动跟踪点击事件
|
|
13
|
+
trackStay?: boolean // 是否自动跟踪停留时间
|
|
14
|
+
pageTitle?: string // 页面标题
|
|
15
|
+
customData?: Record<string, unknown> // 自定义数据
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* 自动埋点组合式函数
|
|
20
|
+
* @param config 自动埋点配置
|
|
21
|
+
*/
|
|
22
|
+
export function useAutoTracking(config: AutoTrackingConfig = {}) {
|
|
23
|
+
const { trackPageView = true, trackClicks = true, pageTitle, customData = {} } = config
|
|
24
|
+
|
|
25
|
+
const pageStartTime = ref<number>(0)
|
|
26
|
+
const isPageVisible = ref<boolean>(true)
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* 处理页面显示
|
|
30
|
+
*/
|
|
31
|
+
const handlePageShow = () => {
|
|
32
|
+
isPageVisible.value = true
|
|
33
|
+
pageStartTime.value = Date.now()
|
|
34
|
+
|
|
35
|
+
if (trackPageView) {
|
|
36
|
+
trackingSDK.trackPageView(pageTitle)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* 处理页面隐藏
|
|
42
|
+
*/
|
|
43
|
+
const handlePageHide = () => {
|
|
44
|
+
isPageVisible.value = false
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* 处理点击事件
|
|
49
|
+
*/
|
|
50
|
+
const handleClick = (event: any) => {
|
|
51
|
+
if (!trackClicks || !isPageVisible.value) return
|
|
52
|
+
|
|
53
|
+
const target = event.target || event.currentTarget
|
|
54
|
+
const elementId = target?.id
|
|
55
|
+
const elementClass = target?.className
|
|
56
|
+
const elementText = target?.textContent || target?.innerText
|
|
57
|
+
|
|
58
|
+
trackingSDK.trackClick(elementId || elementClass, elementText)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* 手动埋点方法
|
|
63
|
+
*/
|
|
64
|
+
const trackEvent = (eventName: string, data?: Record<string, unknown>) => {
|
|
65
|
+
trackingSDK.trackCustom(eventName, { ...customData, ...data })
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* 埋点业务事件
|
|
70
|
+
*/
|
|
71
|
+
const trackBusinessEvent = (event: TrackingEventType, businessData?: Record<string, unknown>) => {
|
|
72
|
+
trackingSDK.trackBusiness(event, businessData)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// 组件挂载时设置自动埋点
|
|
76
|
+
useDidShow(() => {
|
|
77
|
+
handlePageShow()
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
// 组件卸载时记录停留时间
|
|
81
|
+
onUnmounted(() => {
|
|
82
|
+
handlePageHide()
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
return {
|
|
86
|
+
// 状态
|
|
87
|
+
isPageVisible,
|
|
88
|
+
pageStartTime,
|
|
89
|
+
|
|
90
|
+
// 事件处理函数
|
|
91
|
+
handleClick,
|
|
92
|
+
|
|
93
|
+
// 手动埋点方法
|
|
94
|
+
trackEvent,
|
|
95
|
+
trackBusinessEvent,
|
|
96
|
+
|
|
97
|
+
// 页面生命周期
|
|
98
|
+
handlePageShow,
|
|
99
|
+
handlePageHide,
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* 页面级自动埋点组合式函数
|
|
105
|
+
*/
|
|
106
|
+
export function usePageTracking(config: AutoTrackingConfig = {}) {
|
|
107
|
+
return useAutoTracking(config)
|
|
108
|
+
}
|