项目场景:
最近开发了一个小程序,设计到一个功能需要做记录用户的浏览记录,用户停留在哪些页面以及页面的路径和进出入时间,做数据埋点。
问题描述:
因为需要小程序所有页面都要记录到,这里考虑直接写一个公共组件来调用。
解决方案:
getCurrentPages();//获取当前页面路径 这个是微信原生封装的方法,直接调用,可以获取到该用户所有操作的路径,page[page.length-1].route;根据返回数据分析出数组最后一个是当前页面路径,
小程序自己封装组件里面 组件生命周期有一个pageLifetimes ,
//获取当前页面路径
export function getNowPath(){
let page=getCurrentPages();//获取当前页面路径
// console.log(page[page.length-1].route);
let a=page[page.length-1].route;
return a;
}
-------------------------------------------------------------------------------------------
//组件里面的生命周期,检测子组件所在当前页面的显示和隐藏
pageLifetimes:{
show:function(){
this.data.startTime=util.formatTime(new Date());//获取页面进入时间
console.log("显示")
},
hide: function() {
// 页面被隐藏
console.log("隐藏")
this.data.endTime=util.formatTime(new Date());//获取页面隐藏时间
this.initData();
},
},