UNPKG

send-event-tracking-fun

Version:

埋点方法

2 lines (1 loc) 2.84 kB
(function(s,c){typeof exports=="object"&&typeof module!="undefined"?c(exports):typeof define=="function"&&define.amd?define(["exports"],c):(s=typeof globalThis!="undefined"?globalThis:s||self,c(s.eventTracking={}))})(this,function(s){"use strict";var A=Object.defineProperty;var M=(s,c,f)=>c in s?A(s,c,{enumerable:!0,configurable:!0,writable:!0,value:f}):s[c]=f;var l=(s,c,f)=>(M(s,typeof c!="symbol"?c+"":c,f),f);let c;const f=new Uint8Array(16);function T(){if(!c&&(c=typeof crypto!="undefined"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!c))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return c(f)}const d=[];for(let e=0;e<256;++e)d.push((e+256).toString(16).slice(1));function b(e,n=0){return d[e[n+0]]+d[e[n+1]]+d[e[n+2]]+d[e[n+3]]+"-"+d[e[n+4]]+d[e[n+5]]+"-"+d[e[n+6]]+d[e[n+7]]+"-"+d[e[n+8]]+d[e[n+9]]+"-"+d[e[n+10]]+d[e[n+11]]+d[e[n+12]]+d[e[n+13]]+d[e[n+14]]+d[e[n+15]]}let w,v,p=0,y=0;function E(e,n,I){let t=n&&I||0;const u=n||new Array(16);e=e||{};let r=e.node||w,o=e.clockseq!==void 0?e.clockseq:v;if(r==null||o==null){const i=e.random||(e.rng||T)();r==null&&(r=w=[i[0]|1,i[1],i[2],i[3],i[4],i[5]]),o==null&&(o=v=(i[6]<<8|i[7])&16383)}let a=e.msecs!==void 0?e.msecs:Date.now(),g=e.nsecs!==void 0?e.nsecs:y+1;const S=a-p+(g-y)/1e4;if(S<0&&e.clockseq===void 0&&(o=o+1&16383),(S<0||a>p)&&e.nsecs===void 0&&(g=0),g>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");p=a,y=g,v=o,a+=122192928e5;const m=((a&268435455)*1e4+g)%4294967296;u[t++]=m>>>24&255,u[t++]=m>>>16&255,u[t++]=m>>>8&255,u[t++]=m&255;const x=a/4294967296*1e4&268435455;u[t++]=x>>>8&255,u[t++]=x&255,u[t++]=x>>>24&15|16,u[t++]=x>>>16&255,u[t++]=o>>>8|128,u[t++]=o&255;for(let i=0;i<6;++i)u[t+i]=r[i];return n||b(u)}const h={test:"mta-t1",pre:"mta-p1",pro:"mta",dev:"mta-d1"},_=e=>{let n="";return e&&(n=h[e]),e&&!n?e:`https://${n||h.test}.dingdanll.com/ddll-haotian/mta/data/save`};class q{constructor(){l(this,"eventId","");l(this,"nodeId");l(this,"event","web_click");l(this,"userId",localStorage.getItem("userId"));l(this,"tel",localStorage.getItem("phone"));l(this,"ntwId");l(this,"url");l(this,"platform",4)}}const k=(e,n)=>{const{eventId:I}=n,t=new q;Object.assign(t,n);const u=sessionStorage.getItem("uuid");if(!t.userId&&!u){const r=BigInt(`0x${E().replace(/-/g,"")}`).toString().slice(0,16);sessionStorage.setItem("uuid",r),t.userId=r}if(!t.userId&&u&&(t.userId=u),!I){console.error("\u4E8B\u4EF6Id\u4E0D\u80FD\u4E3A\u7A7A\uFF01");return}fetch(_(e),{method:"post",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}})},j={click(e,n){k(e,{...n,event:"web_click"})},view(e,n){k(e,{...n,event:"page_view"})}};s.sendEventTracking=j,Object.defineProperties(s,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});