// 埋点对象 var zwlog; // 页面埋点数据 var pageLogMap = {}; /* * *******用户信息采集,同时声明 Zwlog 对象实例 * uerId 用户 ID 没登录就非必填,登录了必填 */ export function initZwlog () { zwlog = new ZwLog({ _user_id: localStorage.getItem('centerNo'), // _user_nick: localStorage.getItem('_user_nick') }); } /* * *******PV 日志参数- global_args * url 页面路径 【选填】(未传参默认获取当前路由地址) * enterPageTime 【必填】(默认在路由改变的时候自动获取时间) 进入页面的时间 new Date() * leavePageTime 【必填】(默认在路由改变的时候自动获取时间) 离开页面的时间 new Date() * loadTime【必填】(页面onShow中获取当前时间) 加载完的时间 new Date() * responseTime 【必填】(页面onShow的nextTick中获取当前时间) 响应完的时间 new Date() */ export function zwlogPvGlobal ({ url = null, enterPageTime = null, leavePageTime = null, loadTime = null, responseTime = null } = {}) { console.log('调用zwlogPvGlobal') if (!zwlog) initZwlog(); let path = url || getCurRoute(); if (!pageLogMap.hasOwnProperty(path)) pageLogMap[path] = { enterPageTime: null, leavePageTime: null, loadTime: null, responseTime: null, }; if (enterPageTime) pageLogMap[path].enterPageTime = enterPageTime; if (leavePageTime) pageLogMap[path].leavePageTime = leavePageTime; if (loadTime) pageLogMap[path].loadTime = loadTime; if (responseTime) pageLogMap[path].responseTime = responseTime; console.log("zheliban === " + path, pageLogMap[path]); if ( pageLogMap[path].enterPageTime && pageLogMap[path].leavePageTime && pageLogMap[path].loadTime && pageLogMap[path].responseTime ) { /* * miniAppId 应用开发管理 平台 appId * miniAppName 应用开发管理 平台应用名称 * log_status 用户登录状态 (01:未登录/ 02:单点登录) * Page_duration 浏览时长 用户从进入到离开当 前页面的时长 * t2 页面加载时间 页面启动到加载完成 的时间 * t0 页面响应时间 页面启动到页面响应 完成的时间 * pageId 应用页面 ID * pageName 应用页面名称 */ let Page_duration = pageLogMap[path].leavePageTime.getTime() - pageLogMap[path].enterPageTime.getTime(); let t2 = pageLogMap[path].loadTime.getTime() - pageLogMap[path].enterPageTime.getTime(); let t0 = pageLogMap[path].responseTime.getTime() - pageLogMap[path].enterPageTime.getTime(); setTimeout(() => { let pvParams = { miniAppId: "2002281863", miniAppName: "绍兴研学", log_status: "02", // Page_duration: Page_duration / 1000 + "秒", t2: t2 / 1000 + "秒", t0: t0 / 1000 + "秒", pageId: path, pageName: getNavigationBarTitleText(), }; zwlog.onReady(function () { console.log('zwlog onReady') zwlog.sendPV(pvParams); delete pageLogMap[path]; }); }, 500); } else { let result = ""; for (let k in pageLogMap[path]) { if (!pageLogMap[path][k]) result += k + ","; } console.log("zheliban === 浙里办页面" + path + "埋点缺少参数=>>", result); } } // 获取页面的导航title function getNavigationBarTitleText () { // let pages = getCurrentPages(); // let page = pages[pages.length - 1]; // let title = page.$holder.navigationBarTitleText; // console.log("zheliban === getNavigationBarTitleText title=", title); return document.title; } // 点击事件的埋点 export function zwlogRecord ({ code = "" } = {}) { if (!zwlog) initZwlog(); let path = getCurRoute(); zwlog.onReady(function () { zwlog.record({ trackerEventCode: `${code}`, eventType: "OTHER", eventParams: { pageId: path, //采用页面路径,也可以自己给每个页面设置一个pageId pageName: getNavigationBarTitleText(), }, }); }); } let getCurRoute = () => { // let routes = getCurrentPages(); // 获取当前打开过的页面路由数组 // let curRoute = routes[routes.length - 1].route; // 获取当前页面路由,也就是最后一个打开的页面路由 // console.log("curRoute", curRoute); return '/'; };