diff --git a/docs/zh-CN/extend/tracker.md b/docs/zh-CN/extend/tracker.md index fdc5145b0..0a3251ed1 100644 --- a/docs/zh-CN/extend/tracker.md +++ b/docs/zh-CN/extend/tracker.md @@ -483,3 +483,8 @@ tab 切换事件,示例 当用户又切换回当前页面的时间,可以当做是用户重新访问的开始时间。 由于 amis 可能被嵌入到页面中,所以 amis 无法知晓页面首次打开的时间,需要自行处理。 + +### pageLoaded + +当Page组件加载完成时触发,可用于收集页面首次打开的时间,需确保当前页面有Page组件。 +备注: 2.8.0以上版本支持。 diff --git a/packages/amis-core/src/types.ts b/packages/amis-core/src/types.ts index ebd3d90bc..a88031f8e 100644 --- a/packages/amis-core/src/types.ts +++ b/packages/amis-core/src/types.ts @@ -436,6 +436,7 @@ export interface EventTrack { | 'reset-and-submit' | 'formItemChange' | 'tabChange' + | 'pageLoaded' | 'pageHidden' | 'pageVisible'; diff --git a/packages/amis/src/renderers/Page.tsx b/packages/amis/src/renderers/Page.tsx index ebb0ff608..4dc6b7cfc 100644 --- a/packages/amis/src/renderers/Page.tsx +++ b/packages/amis/src/renderers/Page.tsx @@ -385,7 +385,8 @@ export default class Page extends React.Component { messages, asideSticky, data, - dispatchEvent + dispatchEvent, + env } = this.props; this.mounted = true; @@ -399,6 +400,11 @@ export default class Page extends React.Component { const rendererEvent = await dispatchEvent('init', data, this); + // Page加载完成时触发 pageLoaded 事件 + if (env?.tracker) { + env.tracker({eventType: 'pageLoaded'}); + } + if (rendererEvent?.prevented) { return; }