HarmonyOS鸿蒙Next中如何统计 ArkWeb 内每个网页的访问时长?
HarmonyOS鸿蒙Next中如何统计 ArkWeb 内每个网页的访问时长? 我们有个数据埋点的需求.
需要在 ArkWeb 内统计并上报某个网页被访问的时长.
请问 ArkWeb 是否提供了一些 API, 我可以监听并回调该网页的起始与关闭并记录展示时间?
3 回复
目前暂无监听网页关闭的API,如果是Web中loadUrl加载网页,可以使用onPageVisible()在旧页面不再呈现,新页面即将可见时刷新计时;如果是Web页面或组件复用加载网页,可以在页面和组件的生命周期中进行打点。
核心代码如下:
export function hiAppEventFun(pageName: string, time: number): void {
// 在页面关闭时进行事件打点,以记录用户浏览时间
let eventParams: Record<string, number> = { 'click_time': 100 };
let eventInfo: hiAppEvent.AppEventInfo = {
// 事件领域定义----打开页面
domain: "close",
// 事件名称定义----浏览
name: "browsing",
// 事件类型定义
eventType: hiAppEvent.EventType.BEHAVIOR,
// 事件参数定义
params: eventParams,
};
hiAppEvent.write(eventInfo).then(() => {
console.log(pageName + "浏览了" + time + " 秒")
}).catch((err: BusinessError) => {
hilog.error(0x0000, 'testTag', `HiAppEvent err.code: ${err.code}, err.message: ${err.message}`)
});
}
在进入页面时开始计时,关闭页面时进行调用事件打点函数
timer: number = 0;
count: number = 0;
onPageShow(){
this.timer = setInterval(() =>{
this.index++;
},1000)
}
onPageHide(){
clearInterval(this.timer);
hiAppEventFun(this.pageInfo, this.index)
}
更多关于HarmonyOS鸿蒙Next中如何统计 ArkWeb 内每个网页的访问时长?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,统计ArkWeb内每个网页的访问时长可以通过以下步骤实现:
- 监听页面加载事件:使用
onPageStart
和onPageFinish
方法分别记录页面的开始和结束时间。 - 计算访问时长:在
onPageFinish
中获取当前时间,并与onPageStart
记录的时间相减,得到访问时长。 - 存储和上报数据:将统计的时长数据存储在本地或通过网络请求上报到服务器。
示例代码:
let startTime;
ArkWeb.onPageStart(() => {
startTime = new Date().getTime();
});
ArkWeb.onPageFinish(() => {
const endTime = new Date().getTime();
const duration = endTime - startTime;
console.log(`页面访问时长:${duration}ms`);
// 存储或上报 duration
};