HarmonyOS Next中如何基于HMRouter实现页面停留时长的数据打点统计框架?

阅读 657
1 个回答

可以使用生命周期回调,在对应的位置进行打点,以下示例为页面停留时长的数据打点统计,实现上参考以下步骤:

  1. 定义一个类PageDurationLifecycle实现IHMLifecycle接口。
  2. 为该类添加@HMLifecycle注解,并配置global为true,将该生命周期配置到全局,所有页面都会执行该生命周期。
  3. 在页面显示时(onShown)记录当前的时间戳,在页面隐藏时(onHidden)计算页面停留时长。

    @HMLifecycle({ lifecycleName: 'PageDurationLifecycle', global: true })
    export class PageDurationLifecycle implements IHMLifecycle {
      private time: number = 0;
    
      onShown(): void {
     this.time = new Date().getTime();
      }
    
      onHidden(ctx: HMLifecycleContext): void {
     const duration = new Date().getTime() - this.time;
     console.log(`Page ${ctx.navContext?.pathInfo.name} stay ${duration}`);
      }
    }

    本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进