zg-sdk-uniapp
Version:
诸葛io小程序uniapp数据采集sdk
1 lines • 22.4 kB
JavaScript
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i=t();for(var r in i)("object"==typeof exports?exports:e)[r]=i[r]}}(window,function(){return function(e){var t={};function i(r){if(t[r])return t[r].exports;var u=t[r]={i:r,l:!1,exports:{}};return e[r].call(u.exports,u,u.exports,i),u.l=!0,u.exports}return i.m=e,i.c=t,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var u in e)i.d(r,u,function(t){return e[t]}.bind(null,u));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=0)}([function(e,t,i){"use strict";i.r(t);var r={uuid(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()},type:e=>Object.prototype.toString.call(e),isObject(e){return"[object Object]"===this.type(e)},isArray(e){return"[object Array]"===this.type(e)},isString(e){return"[object String]"===this.type(e)},isNumber(e){return"[object Number]"===this.type(e)},isDate(e){return"[object Date]"===this.type(e)},isFunction(e){return"[object Function]"===this.type(e)},extend(e,t){let i=e||{},r=t||{};for(let e in i)if(this.isObject(i[e]))r[e]=r[e]?r[e]:{},this.extend(i[e],r[e]);else if(this.isArray(i[e]))if(r[e]&&r[e]!==[]){let t=0,u=r[e].length,a=i[e].length;for(;t<u&&t<a;t++)r[e][t]=this.extend(i[e][t],r[e][t])}else r[e]=i[e];else r[e]=null===r[e]||void 0===r[e]?i[e]:r[e];return r},popEach(e,t){t(e.pop()),e.length&&this.popEach(e,t)},shiftEach(e,t){t(e.shift()),e.length&&this.shiftEach(e,t)},encode(e){let t={};for(let i in e)t["_"+i]=e[i];return t},getSystemInfo:()=>new Promise((e,t)=>{uni.getSystemInfo({success(t){e(t)},fail(e){t(e)}})}),getNet:()=>new Promise((e,t)=>{uni.getNetworkType({success(t){let i=t.networkType.toLowerCase();e({net:"wifi"===i?1:0,mnet:"wifi"===i?0:{"2g":1,"3g":3,"4g":13}[i]||0})},fail(e){t(e)}})}),getCurrentPage(){if(getCurrentPages&&getCurrentPages().length){let e=getCurrentPages();return e[e.length-1]}return null},getPageRoute(){const e=this.getCurrentPage();return e?e.route:""},getPagePath(e){return this.getPageRoute()+e.pathParam},getTimezone:e=>6e4*-e.getTimezoneOffset(),request(e,t){let i=uni.request;return new Promise((r,u)=>{let a=this.extend({url:e+"/apipool",method:"POST",data:{},header:{"content-type":"application/x-www-form-urlencoded"},dataType:"json",responseType:"arraybuffer",success(e){r(e)},fail(e){u(e)}},t);i(a)})},getUtmByQuery(e){let t=["utm_source","utm_medium","utm_campaign","utm_content","utm_term"],i={};for(let r in e)t.indexOf(r)>-1&&(i[`${r}`]=e[r]);return i},haveUtm(e){let t=["utm_source","utm_medium","utm_campaign","utm_content","utm_term"],i=!1,r={};for(const u in e)t.indexOf(u)>-1&&(i=!0,r[u]=e[u]);return i?r:null},deleteQueryParams(e,t){let i=[];return e.split("&").forEach(function(e){let r=new RegExp(t+"=.*"),u="";r.test(e)?(u=e.replace(r,""))&&i.push(u):i.push(e)}),i.join("&")},addUrlParam(e,t){let i=e,r="";for(let e in t)r&&(r+="&"),i=this.deleteQueryParams(i,e),r+=e+"="+t[e];let u=i.split("?");return u.length>1?u[1]?u[1]=r+"&"+u[1]:u[1]=r:1===u.length&&u.push(r),u.join("?")},syncHelper(e){let t=[];return{getQueue(e){let i=null,r=null,u=new Promise((e,a)=>{let s=()=>{t.forEach((e,i)=>{e===u&&t.splice(i,1)})};i=(()=>{s(),e()}),r=(e=>{s(),a(e)})});return t.push(u),{resolve:i,reject:r,promise:u}},async getAwaitQueue(e){if(t.length){let i=[];for(let r=0;r<t.length&&t[r]!==e;r++)i.push(t[r]);i.length&&await Promise.all(i)}}}},isEqual(e,t){if(this.type(e)!==this.type(t))return!1;let i=!0;for(let r in e)e[r]!==t[r]&&(i=!1);return i},getTitle(e){let t="";e.data&&e.data.title&&e.data.title.length>0&&(t=Array.isArray(e.data.title)?e.data.title.join(" "):e.data.title);try{if(!t.length&&__wxConfig&&(__wxConfig.tabBar&&__wxConfig.tabBar.list.forEach(i=>{i.pagePath===`${e.route}.html`&&i.text&&(t=i.text)}),!t.length)){let i=__wxConfig.page[e.route]||__wxConfig.page[`${e.route}.html`];t=i?i.window.navigationBarTitleText:__wxConfig.global.window.navigationBarTitleText}}catch(e){}return t||e.route},getLocation:()=>new Promise(e=>{uni.getLocation({type:"wgs84",success:t=>{e(t)},fail:()=>{e({})}})}),getBatteryInfo:()=>new Promise(e=>{uni.getBatteryInfo({success:t=>{e(t.level)}})})};let u=r.syncHelper("storage");var a={key:"zg",getAllSync(){let e=uni.getStorageSync(this.key);return e||(e={sid:0,update:0,utm:{}},uni.setStorageSync(this.key,e)),e},getSync(e){return this.getAllSync()[e]},setSync(e,t){const i=this.getAllSync();i[e]=t,uni.setStorageSync(this.key,i)},getAll(){return this.getAllSync()},registerDid(e){let t=u.getQueue("storage-set-did"),i=e||r.uuid();return this.setSync("zg-did",i),t.resolve(),i},getDid(){let e=u.getQueue("storage-get-did");const t=this.getSync("zg-did");return e.resolve(),t},setUtm(e){this.setSync("utm",e)}},s={1001:{utm_source:"微信主程序",utm_medium:"发现栏小程序主入口"},1005:{utm_source:"搜索",utm_medium:"顶部搜索框的搜索结果页"},1006:{utm_source:"搜索",utm_medium:"发现栏小程序主入口搜索框的搜索结果页"},1007:{utm_source:"分享",utm_medium:"单人聊天会话中的小程序消息卡片"},1008:{utm_source:"分享",utm_medium:"群聊会话中的小程序消息卡片"},1011:{utm_source:"扫码",utm_medium:"扫描二维码"},1012:{utm_source:"扫码",utm_medium:"长按图片识别二维码"},1013:{utm_source:"扫码",utm_medium:"手机相册选取二维码"},1014:{utm_source:"小程序模板消息",utm_medium:"小程序模板消息"},1017:{utm_source:"体验版",utm_medium:"前往体验版的入口页"},1019:{utm_source:"微信支付",utm_medium:"微信钱包"},1020:{utm_source:"公众号",utm_medium:"公众号profile页相关小程序列表"},1022:{utm_source:"微信主程序",utm_medium:"聊天顶部置顶小程序入口"},1023:{utm_source:"桌面图标",utm_medium:"安卓系统桌面图标"},1024:{utm_source:"微信主程序",utm_medium:"小程序 profile 页"},1025:{utm_source:"扫码",utm_medium:"扫描一维码"},1026:{utm_source:"微信主程序",utm_medium:"附近小程序列表"},1027:{utm_source:"搜索",utm_medium:"顶部搜索框搜索结果页“使用过的小程序”列表"},1028:{utm_source:"微信卡券",utm_medium:"我的卡包"},1029:{utm_source:"微信卡券",utm_medium:"卡券详情页"},1030:{utm_source:"测试",utm_medium:"自动化测试下打开小程序"},1031:{utm_source:"扫码",utm_medium:"长按图片识别一维码"},1032:{utm_source:"扫码",utm_medium:"手机相册选取一维码"},1034:{utm_source:"微信支付",utm_medium:"微信支付完成页"},1035:{utm_source:"公众号",utm_medium:"公众号自定义菜单"},1036:{utm_source:"分享",utm_medium:"App分享消息卡片"},1037:{utm_source:"小程序",utm_medium:"小程序打开小程序"},1038:{utm_source:"小程序",utm_medium:"从另一个小程序返回"},1039:{utm_source:"摇电视",utm_medium:"摇电视"},1042:{utm_source:"搜索",utm_medium:"添加好友搜索框的搜索结果页"},1043:{utm_source:"公众号",utm_medium:"公众号模板消息"},1044:{utm_source:"分享",utm_medium:"带shareTicket的小程序消息卡片(详情)"},1045:{utm_source:"广告",utm_medium:"朋友圈广告"},1046:{utm_source:"广告",utm_medium:"朋友圈广告详情页"},1047:{utm_source:"扫码",utm_medium:"扫描小程序码"},1048:{utm_source:"扫码",utm_medium:"长按图片识别小程序码"},1049:{utm_source:"扫码",utm_medium:"手机相册选取小程序码"},1052:{utm_source:"微信卡券",utm_medium:"卡券的适用门店列表"},1053:{utm_source:"搜索",utm_medium:"搜一搜的结果页"},1054:{utm_source:"搜索",utm_medium:"顶部搜索框小程序快捷入口"},1056:{utm_source:"音乐播放器菜单",utm_medium:"音乐播放器菜单"},1057:{utm_source:"微信支付",utm_medium:"钱包中的银行卡详情页"},1058:{utm_source:"公众号",utm_medium:"公众号文章"},1059:{utm_source:"体验版",utm_medium:"体验版小程序绑定邀请页"},1064:{utm_source:"微信WIFI",utm_medium:"微信连Wi-Fi状态栏"},1067:{utm_source:"广告",utm_medium:"公众号文章广告"},1068:{utm_source:"广告",utm_medium:"附近小程序列表广告"},1069:{utm_source:"移动应用",utm_medium:"移动应用"},1071:{utm_source:"微信支付",utm_medium:"钱包中的银行卡列表页"},1072:{utm_source:"微信支付",utm_medium:"二维码收款页面"},1073:{utm_source:"客服消息",utm_medium:"客服消息列表下发的小程序消息卡片"},1074:{utm_source:"公众号会话",utm_medium:"公众号会话下发的小程序消息卡片"},1077:{utm_source:"摇周边",utm_medium:"摇周边"},1078:{utm_source:"微信WIFI",utm_medium:"连Wi-Fi成功页"},1079:{utm_source:"微信游戏中心",utm_medium:"微信游戏中心"},1081:{utm_source:"客服消息",utm_medium:"客服消息下发的文字链"},1082:{utm_source:"公众号",utm_medium:"公众号会话下发的文字链"},1084:{utm_source:"广告",utm_medium:"朋友圈广告原生页"},1089:{utm_source:"微信主程序",utm_medium:"微信聊天主界面下拉"},1090:{utm_source:"小程序",utm_medium:"长按小程序右上角菜单唤出最近使用历史"},1091:{utm_source:"公众号",utm_medium:"公众号文章商品卡片"},1092:{utm_source:"微信城市服务",utm_medium:"城市服务入口"},1095:{utm_source:"广告",utm_medium:"小程序广告组件"},1096:{utm_source:"分享",utm_medium:"聊天记录"},1097:{utm_source:"微信支付",utm_medium:"微信支付签约页"},1099:{utm_source:"小程序",utm_medium:"页面内嵌插件"},1102:{utm_source:"公众号",utm_medium:"公众号profile页服务预览"},1129:{utm_source:"爬虫",utm_medium:"微信爬虫"},isShare:function(e){return-1!==[1020,1035,1036,1037,1038,1043].indexOf(e)},isCartShare:function(e){return-1!==[1044,1007,1008,1036].indexOf(e)}};const n=r.syncHelper("tracker"),o={debug:!1,usePlugin:!1,serverUrl:{normal:"https://u.zhugeapi.net",bac:"https://ubak.zhugeio.com"},timeout:18e5,did:"",vn:"1.0",pv:!1,utmMode:"session",parseScene:!0,forwardShare:!1,appId:"",utm:{},superProperty:{},sendLimit:1,duration:!1,afterDuration:null,beforeDuration:null,shareToUtm:{},enableExpandEnv:!1};var m=new class{constructor(){this.cn="",this.referrerDomain="miniprogram",this.referrerUrl=null,this.utmCache=null,this.cuid=null,this.did=null,this.openOptions=null,this.pathParam="",this.pageReady=!1,this.requestCache=[],this.limitCache=[],this.prevPagePath="",this.prevPage=null,this.pageTimeQueue=[]}_initDid(){const e=a.getDid(),t=a.getSync("config"),i=a.registerDid(e||t.did);this.did=i}async _info(){let e=await r.getSystemInfo(),t=new Date,i=a.getAllSync(),u={dt:"pl",pr:{$rs:`${e.windowWidth}x${e.windowHeight}`,$tz:r.getTimezone(t),$ct:t.getTime(),$cuid:i.cuid,$sid:i.sid}};await this._sendRequest(u,t)}sessionUpdate(e){a.setSync("update",e)}async _sessionEnd(){let e=a.getAllSync(),t=new Date,i=e.update-e.sid,u={dt:"se",pr:{$ct:e.update,$cn:this.cn,$tz:r.getTimezone(t),$dru:i,$sid:e.sid,$cuid:e.cuid,$referrer_domain:this.referrerDomain}};await this._sendRequest(u,t)}async _sessionStart(e){const t=a.getSync("config");let i=r.isEqual(e,{})?null:e,u=new Date,s=u.getTime(),n=await r.getSystemInfo(),o=await r.getNet();a.setSync("sid",s),this.sessionUpdate(s),a.setUtm(i||this.utmCache);let m={dt:"ss",pr:{$ct:s,$sid:s,$cuid:a.getSync("cuid"),$cn:this.cn,$tz:r.getTimezone(u),$url:r.getPagePath(this),$ref:this.referrerUrl,$os:n.system.split(/\s/)[0],$ov:n.system.split(/\s/)[1],$wv:n.version,$mnet:o.mnet,$net:o.net,$vn:t.vn,$referrer_domain:this.referrerDomain,$wxeid:t.appId}};await this._sendRequest(m,u),await this._info()}async clearCache(){await Promise.all(this.requestCache.map(e=>(["se","pl"].includes(e.dt)||(e.pr.$url=r.getPagePath(this)),this._sendRequest(e)))),this.requestCache=[]}async _sendRequest(e){if(!this.pageReady)return void this.requestCache.push(e);const t=new Date;await this.sessionUpdate(t.getTime());let i=a.getSync("utm")||{};for(let t in i)i[t]&&(e.pr[`$${t}`]=i[t]);await this._batchRequest(e)}flush(){if(!this.limitCache.length)return;let e=new Date;const t=a.getSync("config"),i=this.limitCache.map(e=>e);this.limitCache=[];const u=a.getSync("appKey");let s={method:"web_event_sr.upload",event:{sln:"itn",pl:"js",sdk:"sys",sdkv:"1.1.9",owner:"zg",ut:`${e.getFullYear()}-${e.getMonth()+1}-${e.getDate()} ${e.toTimeString().match(/\d{2}:\d{2}:\d{2}/)[0]}`,tz:r.getTimezone(e),debug:t.debug?1:0,ak:u,usr:{did:a.getDid()},data:i},_:e.getTime()+""};r.isObject(s.event)&&(s.event=JSON.stringify(s.event));let n={data:s};r.request(t.serverUrl.normal,n).catch(()=>r.request(t.serverUrl.bac,n)).catch(e=>{console.error("上传数据失败",e)})}async _batchRequest(e){this.limitCache.push(e);const t=a.getSync("config");this.limitCache.length<t.sendLimit||await this.flush()}async _updateSession(e,t){let i=n.getQueue(e);await n.getAwaitQueue(i.promise);const r=a.getSync("config"),u=(new Date).getTime();let s=a.getAllSync();s.sid&&s.update?u-s.update>r.timeout?(await this._sessionEnd(),await this._sessionStart(t)):await this.sessionUpdate(u):await this._sessionStart(t),i.resolve()}async _track(e){let t=new Date;const i=a.getSync("config");await this._updateSession("_track");let u=a.getAllSync(),s=await r.getNet(),n=await r.getSystemInfo(),o={dt:"evt",pr:{$eid:e,$ct:t.getTime(),$sid:u.sid,$cuid:u.cuid,$cn:this.cn,$tz:r.getTimezone(t),$url:r.getPagePath(this),$ref:this.referrerUrl,$os:n.system.split(/\s/)[0],$ov:n.system.split(/\s/)[1],$wv:n.version,$mnet:s.mnet,$net:s.net,$vn:i.vn,$referrer_domain:this.referrerDomain,$wxeid:i.appId}};if(i.enableExpandEnv){const e=await r.getLocation();e&&(o.pr._lng=e.longitude,o.pr._lat=e.latitude),this.gyroInfo&&(o.pr._gyro=`x:${this.gyroInfo.x},y${this.gyroInfo.y}:,z:${this.gyroInfo.z}`),o.pr._curpower=await r.getBatteryInfo(),o.pr._lang=uni.getLocale(),this.wifi&&(o.pr._wifiSid=this.wifi.SSID,o.pr._wifiBssid=this.wifi.BSSID)}return o.pr=r.extend(o.pr,r.encode(i.superProperty)),{requestData:o,date:t}}_parseUtm(e){let t=r.getUtmByQuery(e.query||{});const i=a.getSync("config");if(i.parseScene&&e&&e.scene){let i=e.scene;this.cn=i+"";const u=s[i];let a={},n=null;if(s.isShare(i)&&e.referrerInfo&&(n=e.referrerInfo.appId),u){a={utm_source:u.utm_source,utm_medium:u.utm_medium,utm_campaign:n};let t=e.query||{};s.isCartShare(i)&&t.zg_uid&&t.zg_share_id&&(a.utm_term=t.zg_uid,a.utm_content=t.zg_share_id)}t=r.extend(a,t)}this.utmCache=!i.utm||r.isEqual(i.utm,{})?t:i.utm}async _getActivePage(e={time:0,path:""}){this.pageTimeQueue.push(e),this.pageTimeQueue.length>1&&(await this.duration(),this.pageTimeQueue.shift())}async duration(){const e=a.getSync("config");r.isFunction(e.beforeDuration)&&e.beforeDuration(this.prevPage);let t=this.pageTimeQueue[0],i=this.pageTimeQueue[1].time-t.time;await this._updateSession("duration");let u=await this._track("dr");u.requestData.dt="abp",u.requestData.pr.$dr=i,u.requestData.pr.$url=t.path,await this._sendRequest(u.requestData,u.date),r.isFunction(e.beforeDuration)&&e.afterDuration(this.prevPage)}async pv(e){await this._updateSession("pv");const t=a.getSync("config");let i=await this._track("pv");i.requestData.dt="abp";const u=r.getCurrentPage();let s={$page_title:r.getTitle(u)};t.forwardShare&&e&&(s.$share_open_type=1008===e.scene?"群聊":"聊天",e.query&&e.query.zg_share_level&&(s.$share_level=Number(e.query.zg_share_level)),u.data&&u.data.zg_share_data&&(s=r.extend(s,r.encode(u.data.zg_share_data)))),i.requestData.pr=r.extend(i.requestData.pr,s),await this._sendRequest(i.requestData,i.date)}async track(e,t){await this._updateSession(e);let i=await this._track(e);i.requestData.pr=r.extend(i.requestData.pr,r.encode(t)),await this._sendRequest(i.requestData,i.date)}async identify(e,t){await this._updateSession("identify");let i=a.getAllSync(),u=new Date;a.setSync("cuid",e),this.cuid=e;let s={dt:"usr",pr:{$ct:u.getTime(),$tz:r.getTimezone(u),$cuid:e,$sid:i.sid,$url:r.getPagePath(this)}};s.pr=r.extend(s.pr,r.encode(t)),await this._sendRequest(s,u)}async setPushClient(e,t){let i=new Date,u={dt:"um",pr:{$ct:i.getTime(),$tz:r.getTimezone(i),$push_ch:t||"getui",$push_id:e}};await this._sendRequest(u,i)}async _load(){const e=a.getSync("config");if(uni.getAccountInfoSync){let t=uni.getAccountInfoSync();t&&t.miniProgram&&t.miniProgram.appId&&(e.appId=t.miniProgram.appId)}await this._initDid()}async load(e,t){let i;a.setSync("appKey",e),r.isObject(t)&&(i=r.extend(o,t)),a.setSync("config",i),await this._load(),await this._updateSession("load",i.utm),i.utm&&!r.isEqual(i.utm,{})&&a.setUtm(i.utm)}async setUtm(e){let t=r.haveUtm(e);t&&(await this._updateSession("setUtm",t),a.setUtm(t),this.did=a.getDid(),this.cuid=a.getSync("cuid"))}async trackRevenue(e){await this._updateSession("revenue");let t=await this._track("revenue");t.requestData.dt="abp";let i=r.extend({price:0,total:0,productID:null,productQuantity:0,revenueType:null},e);i.total=function(e,t){let i=0;try{e.toString().split(".")[1]&&(i+=e.toString().split(".")[1].length)}catch(e){console.error(e)}try{t.toString().split(".")[1]&&(i+=t.toString().split(".")[1].length)}catch(e){console.error(e)}return Number(e.toString().replace(".",""))*Number(t.toString().replace(".",""))/Math.pow(10,i)}(i.price,i.productQuantity);let u=["productID","revenueType"],a=["price","total","productQuantity"],s={};for(let e in i){if(-1===u.indexOf(e)&&-1===a.indexOf(e))continue;let t=i[e];a.indexOf(e)>-1&&((t=Number(t))||(t=0)),s["$"+e]=t}t.requestData.pr=r.extend(t.requestData.pr,s),await this._sendRequest(t.requestData,t.date)}setSuperProperty(e){if(r.isObject(e)){const t=a.getSync("config");t.superProperty=e,a.setSync("config",t)}}extendSuperPropertys(e){const t=a.getSync("config");r.isObject(e)&&(t.superProperty=r.extend(t.superProperty,e),a.setSync("config",t))}removeSuperProperty(e){const t=a.getSync("config");for(let i of e)delete t.superProperty[i];a.setSync("config",t)}getSuperProperty(){return a.getSync("config").superProperty}};const c={zgPrivateAttrs:["eid","ct","tz","cuid","cn","sid","url","os","ov","wv","mnet","referrer_domain","net","vn","wxeid","uid","share_id","share_title","share_level","title","path"]};var d={openData:null,shareId:null,shareLevel:null,shared:!1,async trackOpenShare(e){const t=a.getSync("config");if(!e||!t.forwardShare)return;if(this.shared)return void(this.shared=!1);const i=e.query||{},u=r.getCurrentPage(),s=u.route;if(i.zg_uid&&i.zg_share_id){let a={$uid:i.zg_uid,$share_id:i.zg_share_id,$title:r.getTitle(u),$path:s,$share_open_type:e.scene?e.scene:"待确认场景",$share_level:Number(i.zg_share_level)};this.shareId=i.zg_share_id,this.shareLevel=Number(i.zg_share_level);let n={};for(let e in i){let t=e.replace(/^zg_/,"");-1===c.zgPrivateAttrs.indexOf(t)&&/^zg_/.test(e)&&(n[t]=i[e])}const o=t.shareToUtm;if(r.isObject(o)&&!r.isEqual(o,{})){let e={};for(let t in o)null!==n[t]&&void 0!==n[t]&&(e[o[t]]=n[t]);r.isEqual(e,{})||(e.utm_campaign||(e.utm_campaign="分享打开"),await m.setUtm(e))}this.openData={path:s,props:n},a=r.extend(a,r.encode(n)),m._track("wxsopen").then(async e=>{e.requestData.dt="abp",e.requestData.pr=r.extend(e.requestData.pr,a),await m._sendRequest(e.requestData,e.date)})}},onShareAppMessage(){const e=this;return function(t){if(!a.getSync("config").forwardShare)return t;t.path=t.path||this.__route__+m.pathParam;const i=t.title||r.getTitle(this),u=t.path.split("?")[0],s=this.$data.zg_share_data;let n=(new Date).getTime(),o=1;!this.$data.newShare&&e.openData&&e.openData.path===u&&r.isEqual(s||{},e.openData.props)&&(n=e.shareId,o=e.shareLevel+1);let d={share_id:n,uid:m.cuid||m.did,share_level:o},l={$share_title:i,$title:r.getTitle(this)||"",$path:u},h={};for(let e in d)l[`$${e}`]=h[`zg_${e}`]=d[e];for(let e in s)-1===c.zgPrivateAttrs.indexOf(e)&&(l[`_${e}`]=h[`zg_${e}`]=s[e]);return t.path=r.addUrlParam(t.path,h),m._track("wxshare").then(async e=>{e.requestData.dt="abp",e.requestData.pr=r.extend(e.requestData.pr,l),await m._sendRequest(e.requestData,e.date)}),e.shared=!0,t}}};const l={app:{onLaunch(){},onShow(e){(async()=>{a.getSync("config").enableExpandEnv&&(uni.startWifi({success:function(){uni.getConnectedWifi({success:function(e){m.wifi=e.wifi}}),uni.onWifiConnected(function(e){m.wifi=e.wifi})}}),uni.startGyroscope(),uni.onGyroscopeChange(e=>{m.gyroInfo=e}),uni.startWifi(),uni.onWifiConnected(e=>{m.wifi=e.wifi})),m._parseUtm(e),"fresh"===a.getSync("config").utmMode&&a.setUtm(m.utmCache),await m._updateSession("appShow")})(),m.openOptions=e},async onHide(){a.getSync("config").duration&&(m.pageReady=!0,await m._getActivePage({time:(new Date).getTime(),path:r.getPagePath(m)}),m.pageTimeQueue=[],m.prevPagePath="",m.prevPage=null,m.pageReady=!1)}},page:{onLoad(){},onShow(){let e=r.getCurrentPage().options;const t=a.getSync("config");if(e&&!r.isEqual(e,{})){let t=[],i=Object.keys(e);i.sort((e,t)=>e>t?1:e<t?-1:0),i.forEach(i=>{t.push(`${i}=${e[i]}`)}),m.pathParam=`?${t.join("&")}`}else m.pathParam="";m.prevPagePath!==r.getPagePath(m)&&t.duration&&m._getActivePage({time:(new Date).getTime(),path:r.getPagePath(m)}),m.pageReady=!0,m.clearCache(),d.trackOpenShare(m.openOptions),t.pv&&m.pv(m.openOptions),m.openOptions=null},onReady(){},onHide(){m.prevPagePath=r.getPagePath(m),m.prevPage=r.getCurrentPage(),m.pageReady=!1,m.flush(),m.referrerUrl=r.getPagePath(m)},onUnload(){m.prevPagePath=r.getPagePath(m),m.prevPage=r.getCurrentPage(),m.pageReady=!1,m.flush(),m.referrerUrl=r.getPagePath(m)}}};var h={onLaunch(){this._zg_isAppRoot_=!0,l.app.onLaunch.call(this)},onLoad(){l.page.onLoad.call(this)},onShow(e){this.zhugeShare=d,this._zg_isAppRoot_?l.app.onShow.call(this,e):l.page.onShow.call(this)},onReady(){l.page.onReady.call(this)},onHide(){this._zg_isAppRoot_?l.app.onHide.call(this):l.page.onHide.call(this)},onUnload(){this._zg_isAppRoot_||l.page.onUnload.call(this)}};i.d(t,"zhuge",function(){return m}),i.d(t,"mixins",function(){return h})}])});