东莞微网站建设报价东莞商城网站建设价格

当前位置: 首页 > news >正文

? 0 (date.getMonth() 1)
date.getMonth() 1) -; var D date.getDate() 10 ? 0 date.getDate() : date.getDate(); var h date.getHours() 10 ? 0 date.getHours() : date.getHours(); var mm date.getMinutes() 10 ? 0 date.getMinutes() : date.getMinutes(); var s date.getSeconds() 10 ? 0 date.getSeconds() : date.getSeconds(); return Y M D h : mm : s; } export default { myPointPage, toDateDetail, myPointEvent, }; 2、创建 埋点混入的方法和生命周期 pointMixin.js 主要四个方法 eventTrack, 页面事件调用的函数 entryTrack, 页面进入调用的函数 leaveTrack, 页面离开调用的函数 pageLoadTime 页面onReady调用的函数 详细编码 import pointCom from /utils/pointCom.js; export default { data() { return { pointPageUrl: , //跳转url pageType: , //事件类型 进入、离开 loadStartTime: , //页面加载开始时间 }; }, onLoad() { this.entryTrack(); }, onReady() { this.pageLoadTime(); }, onHide() { this.leaveTrack(); }, onUnload() { this.leaveTrack(); }, methods: { eventTrack(eventTrack {}) { console.log(eventTrack, eventTrack, this.pointPageUrl) let pointPageUrl getCurrentPages()[getCurrentPages().length - 1].route; this.pointPageUrl pointPageUrl; pointCom.myPointEvent(eventTrack, this.pointPageUrl); }, entryTrack() { let loadStartTime pointCom.toDateDetail(Number(new Date())); let pointPageUrl getCurrentPages()[getCurrentPages().length - 1].route; this.pointPageUrl pointPageUrl; this.pageType entryPage; this.loadStartTime loadStartTime; pointCom.myPointPage(entryPage, this.pointPageUrl); }, pageLoadTime() { let pageLoadTime Number(new Date()) - new Date(this.loadStartTime).getTime() console.log(pageLoadTime, pageLoadTime, this.loadStartTime) uni.setStorageSync(pageLoadTime, pageLoadTime); }, leaveTrack() { if (this.pageType leavePage) return; this.pageType leavePage; pointCom.myPointPage(leavePage, this.pointPageUrl); }, }, }; 3、main.js 引入 pointMixin.js 详细编码 import pointMixin from /utils/pointMixin; //配合埋点的mixin Vue.mixin(pointMixin); 4、得到页面路由和标题的映射map h5中可以得到标题等数据但是app中无法获取 // 获取当前页面链接和参数 function getCurrentPageUrlWithArgs() { const pages getCurrentPages(); const currentPage pages[pages.length - 1]; const route currentPage?.route; const options currentPage?.options || {}; const title currentPage?.\(holder?.navigationBarTitleText || console.log(title) let urlWithArgs /\){route}?; for (let key in options) { const value options[key]; urlWithArgs \({key}\){value}; } urlWithArgs urlWithArgs.substring(0, urlWithArgs.length - 1); return { options, //当前页面的参数 urlWithArgs, //当前页面的参数 route, title, }; } app获取相关数据需要另辟蹊径 通过文件的读取和写入来实现 具体编码 const fs require(fs-extra) let path require(path) let Hjson require(hjson) const chokidar require(chokidar) let rootPath (function () { let e path.resolve(dirname, ./) return e })() function creatPagesJs() { try { const fileContent fs.readFileSync(./pages.json, utf8); const jsonObj Hjson.rt.parse(fileContent); let pages jsonObj.pages let pagesObj {} pages.map(item { let path item.path let title item?.style?.navigationBarTitleText ||
pagesObj[path] title }) console.log(pagesObj, pagesObj) let pstr export const pagesObj JSON.stringify(pagesObj, null, 2); fs.outputFileSync( path.resolve(rootPath, uni-config, pages.js), pstr ); } catch (err) { console.log(err); } } const watcherPagesJson chokidar .watch(path.resolve(
dirname, ./pages.json)) watcherPagesJson.on(all, (event, path) { console.log(event, path, pages.json) if (event change) { creatPagesJs() } }) creatPagesJs(); 如何调用 package.json 配置调用命令 scripts: { getPages: node getPages.js },