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

做cpa广告网站教程客户网站加一个功能 应该怎么做

做cpa广告网站教程,客户网站加一个功能 应该怎么做,门户网站管理建设,wordpress数据库修改密码一、统计app激活状态 在App.vue 中 利用onShow生命周期验证 或者操作 onShow: function () { uni.showToast({ title: onShow }) }, 二、页面级别的统计 #xff08;进入页面、停留时长、手机系统信息、网络状态、页面路径、标题#xff09; 需要收集的数据 { onShow }) }, 二、页面级别的统计 进入页面、停留时长、手机系统信息、网络状态、页面路径、标题 需要收集的数据 { pageType: leavePage, networkType: wifi, pageInfo: { pageUrl: pages/index/newIndex, title: }, entryTime: 2024-04-10 13:18:50, leaveTime: 2024-04-10 13:18:51, nowTime: 2024-04-10 13:18:51, stayTime: 279, sysTemInfo: { appName: 某某app, appVersion: 2.1.4, brand: apple, platform: ios, system: iOS 17.3.1 }, pageLoadTime: 873 } 通过混入mixins 每个页面生命周期埋点统计、编写逻辑方法 三、页面内部事件级别的统计 各种事件信息集合eventTrack点击、复制、下载、来源某个特定页面的操作、 手机系统信息、网络状态、页面路径、标题 需要收集的数据 { networkType: unknown, pageInfo: { pageUrl: pages/order/index, title: 订单 }, sysTemInfo: { appName: 某某app, appVersion: 2.1.4, brand: xiaomi, platform: android, system: Android 12 }, eventTrack: { // 事件所需要的埋点字段 eventCode: B0004 } } 通过混入mixins 每个页面生命周期埋点统计、编写逻辑方法 四、具体的设计流程 1、创建 埋点sdk方法 pointCom.js 主要三个方法 myPointPage, 页面级别触发的 toDateDetail, 时间转化函数 myPointEvent, 页面内部事件触发的 详细编码 import { pagesObj } from /uni-config/pages.js // 页面路由和标题的映射map console.log(pagesObj, uni-config) async function myPointPage(pageType , pageUrl ) { console.log(埋点, pageType, pageUrl); let entryTime, leaveTime, stayTime, nowTime; if (!pageType) return; if (pageType entryPage) { entryTime new Date().getTime(); nowTime new Date().getTime(); leaveTime null; uni.setStorageSync(entryTime, entryTime); } else { entryTime uni.getStorageSync(entryTime); leaveTime new Date().getTime(); stayTime leaveTime - entryTime; nowTime new Date().getTime(); } uni.getNetworkType({ success: function (res) { let networkType res.networkType; try { uni.getSystemInfo({ success: function (res) { let { appName, appWgtVersion, brand, platform, system } res let data { pageType: pageType, networkType: networkType, pageInfo: { pageUrl: pageUrl, title: pagesObj[pageUrl] }, entryTime: toDateDetail(entryTime), leaveTime: toDateDetail(leaveTime), nowTime: toDateDetail(nowTime), stayTime: stayTime, sysTemInfo: { appName, appVersion: appWgtVersion, brand, platform, system }, }; if (pageType leavePage) { data.pageLoadTime uni.getStorageSync(pageLoadTime); } console.log(发送调用埋点接口, data) }, fail(error) { sysTemInfo null; }, }); } catch (e) { } }, }); } async function myPointEvent(eventTrack {}, pageUrl ) { uni.getNetworkType({ success: function (res) { let networkType res.networkType; try { uni.getSystemInfo({ success: function (res) { let { appName, appWgtVersion, brand, platform, system } res let data { networkType: networkType, pageInfo: { pageUrl: pageUrl, title: pagesObj[pageUrl] }, sysTemInfo: { appName, appVersion: appWgtVersion, brand, platform, system }, eventTrack }; console.log(myPointEvent发送调用埋点接口, data) }, fail(error) { sysTemInfo null; }, }); } catch (e) { } }, }); } function toDateDetail(number) { if (!number) return undefined; // var n number * 1000 var date new Date(number); var Y date.getFullYear() -; var M (date.getMonth() 1 10 ? 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 },
http://www.hkea.cn/news/14588101/

相关文章:

  • 微信上建微网站要钱吗驾校网上约车网站开发
  • 青岛旅游网站建设最便宜的购物网站排名
  • 电子产品东莞网站建设商城网站建设案例
  • 佛山网站制作公司住房和城乡建设岗位证书查询官网
  • 潍坊手机网站汕头seo不错
  • 怎么做企业销售网站如何在线上注册公司
  • 东莞做网站的公司有哪些互联网保险销售行为可回溯
  • 如何在百度做网站怎么用ajax做电商网站
  • 常州辉煌网络网站制作涿州市网站建设
  • 网站正在建设中 模版厂房验收 技术支持 东莞网站建设
  • 外贸自己建网站潜江资讯网招聘信息最新
  • 那些cps网站做的比较好网络培训平台有哪些
  • 网站信息服务费怎么做分录wordpress会员推广下载支付插件
  • 网站建设登录页面怎么写具有价值的网站建设
  • 网站建设必备的功能模块广告词
  • 巩义做网站的wordpress让小工具支持简码
  • wordpress 升级 xampp 无法定义根目录上海关键词排名手机优化软件
  • 国网北京电力建设研究院网站做网站的关键词是指
  • 源码分享网站网站暂时关闭 seo
  • 什么网站可做浏览器首页wordpress check_admin_referer
  • 企业网站开发定制网站开发过程前端后端
  • 上海网站开发制作公司做网站麻烦吗
  • 贤邦网站建设app开发做网站要服务器和什么软件
  • wordpress runcode高端网站建设seo
  • 公司网站建设申请书满天星建设网站
  • 简单网站制作代码做的网站打不开了
  • 电信电信网站备案系统工业设计网站排行榜前十名有哪些
  • 二手东西网站怎么做如何做网站app
  • 青岛做网站的公司建设银行么官方网站
  • 网站建设和网络维护网站建设公司费用