ctc-track-plugin
Version:
uniapp 小程序埋点劫持
2 lines • 5.64 kB
JavaScript
var _=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var C=(t,e)=>{for(var n in e)_(t,n,{get:e[n],enumerable:!0})},x=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of $(e))!B.call(t,i)&&i!==n&&_(t,i,{get:()=>e[i],enumerable:!(s=M(e,i))||s.enumerable});return t};var j=t=>x(_({},"__esModule",{value:!0}),t);var H={};C(H,{default:()=>V});module.exports=j(H);var h=class{static genUrl(e,n){if(n&&typeof n=="object"){let s=[],i=[","];for(let a in n)if(Object.prototype.hasOwnProperty.call(n,a)){let r=n[a],l=`${a}=${encodeURIComponent(r||"")}`;if(r&&typeof r=="string"){for(let c of i)if(r.includes(c)){let o=new RegExp(`${encodeURIComponent(c)}`,"g");l=l.replace(o,c)}}s.push(l)}s.length>0&&(e=e+"?"+s.join("&"))}return e}};function m(){let t=getCurrentPages(),e;if(t&&t.length>0){let n=t[t.length-1];e={fullPath:h.genUrl(n.route,n.options),route:n.route,options:n.options}}return e}var w=require("ts-md5"),y={trackCount:1},D=()=>{let t=new Date,e=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),s=String(t.getDate()).padStart(2,"0"),i=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0"),r=String(t.getSeconds()).padStart(2,"0");return`${e}-${n}-${s} ${i}:${a}:${r}`},k=()=>uni.getSystemInfoSync().deviceId+new Date().getTime()+Math.floor(Math.random()*9e3)+1e3,T=(t,e)=>{let n=k();return w.Md5.hashStr(`${t}${n}${e}`)},R=()=>k()+y.trackCount,O=/[^/]+$/,f=t=>{var e;return(e=t.match(O))==null?void 0:e[0]},v=(t,e)=>{let n=e.pages.find(s=>s.path===t||f(s.path)===f(t));if(n)return n;for(let s in e){if(s==="easycom"||s==="globalStyle"||s==="tabBar"||s==="pages")continue;let i=e[s];for(let a of i){let r=a.pages.find(l=>`${a.root}/${l.path}`===t||f(l.path)===f(t));if(r)return r}}return null},E=()=>{let{miniProgram:{envVersion:t}}=uni.getAccountInfoSync();switch(t){case"develop":case"trial":return"https://test.chetuoche.net/";case"release":return"https://api.chetuoche.net/";default:return"https://api.chetuoche.net/"}},N=()=>{switch(process.env.NODE_ENV){case"development":return"https://test.chetuoche.net/";case"production":return"https://api.chetuoche.net/";default:return"https://api.chetuoche.net/"}},U=t=>{uni.request({method:"POST",url:`${N()}event/event/dataReport`||`${E()}event/event/dataReport`,data:t,success:e=>{if(console.log(e,"res"),e.statusCode===404||e.statusCode===502){console.log("\u57CB\u70B9\u4E8B\u4EF6\u63D0\u4EA4\u5931\u8D25");return}console.log("\u57CB\u70B9\u4E8B\u4EF6\u63D0\u4EA4\u6210\u529F")},fail:()=>{console.log("\u57CB\u70B9\u4E8B\u4EF6\u63D0\u4EA4\u5931\u8D25")}})},b=class{batch=[];timer=null;batchSize=50;interval=1e4;handleNetworkType=()=>new Promise((e,n)=>{uni.getNetworkType({success({networkType:s}){e(s)},fail:s=>{n(s)}})});handleCommonMessage=async e=>{var P;let n=m(),s=await this.handleNetworkType(),i=uni.getStorageSync("user"),a,r;i?{userid:a,userType:r}=((P=JSON.parse(i))==null?void 0:P.userInfo)??{userid:null,userType:null}:console.log("\u672A\u83B7\u53D6\u5230user\u503C");let{deviceId:l,uniPlatform:c,osName:o,osVersion:g,deviceModel:u,deviceBrand:d,ua:p}=uni.getSystemInfoSync();return{event_timestamp:D(),page_url:n==null?void 0:n.route,extra_params:{},user_id:a,user_type:r,device_id:l,platform:c,os:o,osVersion:g,model:u,brand:d,network_type:s,ua:p,terminal_type:c,session_id:R(),...e}};async sendBatch(){if(this.batch.length===0)return;let e=2,n=!1;for(;e>0&&!n;)try{console.log(`Sending batch of ${this.batch.length} items`),console.log(this.batch,"batch"),U({data:this.batch}),n=!0,this.batch=[]}catch(s){e--,e===0&&console.error("Failed to send batch after retries:",s)}}async addToBatch(e,n){let s={is_element:!e,...await this.handleCommonMessage(n)},i=m(),a=e.content?{is_element:!1}:{is_element:!e.content,element_id:null,element_type:e.tag,element_name:`${i==null?void 0:i.route}_${e.text}`},r=o=>Object.fromEntries(Object.entries(o).filter(([g])=>g!=="event_id")),l=o=>Object.prototype.toString.call(o)==="[object Object]"&&typeof o=="object"?{event_id:o.event_id,extra_params:{...r(o)}}:{event_id:o},c=e.content?l(e.content):{};this.batch.push({...s,...a,...c}),this.batch.length>=this.batchSize?this.sendBatch():this.timer||(this.timer=setTimeout(()=>{this.sendBatch(),this.timer=null},this.interval))}},S=new b,A={install(t,e,n){let s=a=>{console.log(a,"buryContent~~"),y.trackCount++,S.addToBatch(a,{...e,event_type:"click",id:T("click",new Date().getTime())})},i=a=>{var g,u,d;let r=getCurrentPages(),l=r[r.length-1].route,c=v(l,n),o=v(a.slice(1),n);y.trackCount++,S.addToBatch({content:{event_id:(g=o==null?void 0:o.style)==null?void 0:g.navigationBarTitleText}},{page_id:(u=o==null?void 0:o.style)==null?void 0:u.navigationBarTitleText,refer_page_id:(d=c==null?void 0:c.style)==null?void 0:d.navigationBarTitleText,refer_page_url:l,...e,page_url:a,event_type:"page_view",id:T("page_view",new Date().getTime())})};t.config.globalProperties.sendMd=s,t.config.globalProperties.sendPageMd=i,uni.addInterceptor("navigateTo",{invoke(a){console.log(a,"args")},success(a){var u,d,p;let r=getCurrentPages(),l=m(),c=v(l==null?void 0:l.route,n),o=r[r.length-2].route,g=v(o,n);y.trackCount++,S.addToBatch({content:{event_id:(u=c==null?void 0:c.style)==null?void 0:u.navigationBarTitleText}},{page_id:(d=c==null?void 0:c.style)==null?void 0:d.navigationBarTitleText,refer_page_id:(p=g==null?void 0:g.style)==null?void 0:p.navigationBarTitleText,refer_page_url:o,...e,event_type:"page_view",id:T("page_view",new Date().getTime())}),console.log("\u62E6\u622A\u9875\u9762\u8DF3\u8F6C\u6210\u529F",a)}})}},V=A;
//# sourceMappingURL=bury.cjs.map