"use strict"; var e = "[X-STAT] -- ", t = (function () { var t = null, n = !1; function i() { this.setDebug = function (e) { n = e; }; this.d = function () { if (n) try { "string" == typeof arguments[0] && (arguments[0] = e + arguments[0]); console.debug.apply(console, arguments); } catch (e) { } }; this.i = function () { try { if (n) try { "string" == typeof arguments[0] && (arguments[0] = e + arguments[0]); console.info.apply(console, arguments); } catch (e) { } } catch (e) { } }; this.e = function () { if (n) try { "string" == typeof arguments[0] && (arguments[0] = e + arguments[0]); console.error.apply(console, arguments); } catch (e) { } }; this.w = function () { if (n) try { "string" == typeof arguments[0] && (arguments[0] = e + arguments[0]); console.warn.apply(console, arguments); } catch (e) { } }; this.v = function () { if (n) try { "string" == typeof arguments[0] && (arguments[0] = e + arguments[0]); console.log.apply(console, arguments); } catch (e) { } }; this.t = function () { if (n) try { console.table.apply(console, arguments); } catch (e) { } }; this.tip = function () { try { "string" == typeof arguments[0] && (arguments[0] = e + arguments[0]); console.log.apply(console, arguments); } catch (e) { } }; this.tip_w = function (e) { try { console.log( "%c [UMENG] -- " + e, "background:red; padding: 4px; padding-right: 8px; border-radius: 4px; color: #fff;", ); } catch (e) { } }; this.err = function () { try { "string" == typeof arguments[0] && (arguments[0] = e + arguments[0]); console.error.apply(console, arguments); } catch (e) { } }; this.repeat = function (e) { for (var t = e; t.length < 86;) t += e; return t; }; } return function () { null === t && (t = new i()); return t; }; })(), n = (function () { var e = null; function t() { var e = {}; this.useOpenid = function () { return !!e.useOpenid; }; this.useSwanid = function () { return !!e.useSwanid; }; this.autoGetOpenid = function () { return !!e.autoGetOpenid; }; this.appKey = function () { return e.appKey; }; this.url = function () { return e.url; }; this.uploadUserInfo = function () { return e.uploadUserInfo; }; this.enableVerify = function () { return e.enableVerify; }; this.set = function (t) { e = t; }; this.get = function () { return e; }; this.setItem = function (t, n) { e[t] = n; }; this.getItem = function (t) { return e[t]; }; } return function () { e || (e = new t()); return e; }; })(); function i() { } i.prototype = { on: function (e, t, n) { var i = this.e || (this.e = {}); (i[e] || (i[e] = [])).push({ fn: t, ctx: n, }); return this; }, once: function (e, t, n) { var i = this; function r() { i.off(e, r); t.apply(n, arguments); } r._ = t; return this.on(e, r, n); }, emit: function (e) { for ( var t = [].slice.call(arguments, 1), n = ((this.e || (this.e = {}))[e] || []).slice(), i = 0, r = n.length; i < r; i++ ) n[i].fn.apply(n[i].ctx, t); return this; }, off: function (e, t) { var n = this.e || (this.e = {}), i = n[e], r = []; if (i && t) for (var o = 0, s = i.length; o < s; o++) i[o].fn !== t && i[o].fn._ !== t && r.push(i[o]); r.length ? (n[e] = r) : delete n[e]; return this; }, }; var r = new i(); r.messageType = { CONFIG_LOADED: 0, UMA_LIB_INITED: 1, }; var o = new ((function () { function e() { } e.prototype.setStorage = function (e, t, n) { wx.setStorage({ key: e, data: t, success: function () { "function" == typeof n && n(!0); }, fail: function () { "function" == typeof n && n(!1); }, }); }; e.prototype.getStorage = function (e, n) { wx.getStorage({ key: e, success: function (e) { "function" == typeof n && n(e.data); }, fail: function (i) { t().w(e + ": " + i.errMsg); "function" == typeof n && n(); }, }); }; e.prototype.removeStorage = function (e, t) { wx.removeStorage({ key: e, success: function () { "function" == typeof t && t(!0); }, fail: function () { "function" == typeof t && t(!1); }, }); }; e.prototype.getSystemInfo = function (e) { wx.getSystemInfo({ success: function (t) { t.safeArea = t.safeArea || {}; var n = ""; t.host && "string" == typeof t.host.env && (n = t.host.env); var i = { model: t.model, brand: t.brand, pixelRatio: t.pixelRatio, screenWidth: t.screenWidth, screenHeight: t.screenHeight, fontSizeSetting: t.fontSizeSetting, platform: t.platform, platformVersion: t.version, platformSDKVersion: t.SDKVersion, language: t.language, deviceName: t.model, OSVersion: t.system, resolution: "", theme: t.theme, benchmarkLevel: t.benchmarkLevel, safeArea: { width: t.safeArea.width, height: t.safeArea.height, top: t.safeArea.top, left: t.safeArea.left, bottom: t.safeArea.bottom, right: t.safeArea.right, }, statusBarHeight: t.statusBarHeight, host: n, }, r = t.system.split(" "); Array.isArray(r) && (i.OS = r[0]); var o = Math.round(t.screenWidth * t.pixelRatio), s = Math.round(t.screenHeight * t.pixelRatio); i.resolution = o > s ? o + "*" + s : s + "*" + o; "function" == typeof e && e(i); }, fail: function () { "function" == typeof e && e(); }, }); }; e.prototype.getDeviceInfo = function (e) { "function" == typeof e && e(""); }; e.prototype.checkNetworkAvailable = function (e) { wx.getNetworkType({ success: function (t) { "function" == typeof e && e(t && "none" !== t.networkType); }, fail: function () { "function" == typeof e && e(!1); }, }); }; e.prototype.getNetworkInfo = function (e) { wx.getNetworkType({ success: function (t) { "function" == typeof e && e({ networkAvailable: "none" !== t.networkType, networkType: t.networkType, }); }, fail: function () { "function" == typeof e && e(); }, }); }; e.prototype.getDeviceId = function (e) { e(""); }; e.prototype.getAdvertisingId = function (e) { "function" == typeof e && e(""); }; e.prototype.onNetworkStatusChange = function (e) { wx.onNetworkStatusChange(function (t) { "function" == typeof e && e(t.isConnected); }); }; e.prototype.request = function (e) { var t = e.success, n = e.fail, i = !1, r = null; e.success = function (e) { if (!i) { r && clearTimeout(r); "function" == typeof t && t(e); } }; e.fail = function () { if (!i) { r && clearTimeout(r); "function" == typeof n && n(!1); } }; wx.request(e); r = setTimeout(function () { r && clearTimeout(r); i = !0; "function" == typeof n && n(i); }, e.timeout || 5e3); }; e.prototype.getSdkType = function () { return "wxmp"; }; e.prototype.getPlatform = function () { return "wx"; }; e.prototype.getUserInfo = function (e) { e(); }; e.prototype.getAppInfoSync = function () { if (wx.getAccountInfoSync) { var e = wx.getAccountInfoSync(), t = e && e.miniProgram ? e.miniProgram : {}; return { appId: t.appId, appEnv: t.envVersion, appVersion: t.version, }; } return {}; }; e.prototype.onShareAppMessage = function (e) { wx.onShareAppMessage(e); }; e.prototype.shareAppMessage = function (e) { wx.shareAppMessage(e); }; e.prototype.getLaunchOptionsSync = function () { var e = null; if (e) return e; if (!wx.getLaunchOptionsSync) return {}; try { e = wx.getLaunchOptionsSync(); } catch (t) { e = null; } return e || {}; }; return e; })())(), s = function (e, t) { s = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (e, t) { e.__proto__ = t; }) || function (e, t) { for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); }; return s(e, t); }; function a(e, t) { s(e, t); function n() { this.constructor = e; } e.prototype = null === t ? Object.create(t) : ((n.prototype = t.prototype), new n()); } console.log(e); var u = { SESSION_INTERVAL: 3e4, LOG_URL: "https://stat.x-php.com/stat", GET_OPENID_URL: "https://stat.x-php.com/stat/wx/getuut", USERINFO_URL: "https://stat.x-php.com/stat/comm/uif", FETCHURL: "https://stat.x-php.com/stat/fetch", GETVALUEURL: "https://stat.x-php.com/stat/getVlue", DEVICE_INFO_KEY: "device_info", ADVERTISING_ID: "mobile_ad_id", ANDROID_ID: "android_id", CURRENT_SESSION: "current_session", SESSION_PAUSE_TIME: "session_pause_time", EVENT_SEND_DEFAULT_INTERVAL: 15e3, EVENT_LAST_SEND_TIME: "last_send_time", MAX_EVENTID_LENGTH: 128, MAX_PROPERTY_KEY_LENGTH: 256, MAX_PROPERTY_KEYS_COUNT: 100, REPORT_POLICY: "report_policy", REPORT_INTERVAL_TIME: "report_interval_time", REPORT_POLICY_START_SEND: "1", REPORT_POLICY_INTERVAL: "6", IMPRINT: "imprint", SEED_VERSION: "1.0.0", IMPL_VERSION: "2.8.0", ALIPAY_AVAILABLE_VERSION: "10.1.52", SHARE_PATH: "xphp_share_path", SHARES: "shares", REQUESTS: "requests", UUID: "xphp_uuid", UUID_SUFFIX: "ud", OPENID: "xphp_od", UNIONID: "xphp_unid", ALIPAYID: "xphp_alipayid", USERID: "xphp_userid", SWANID: "xphp_swanid", ANONYMOUSID: "xphp_anonymousid", LAUNCH_OPTIONS: "LAUNCH_OPTIONS", XPHP_SSRC: "_xphp_ssrc", USER_INFO: "user_info", IS_ALIYUN: !1, }; var c, f = { isNumber: function (e) { return !Number.isNaN(parseInt(e, 10)); }, compareVersion: function (e, t) { for ( var n = String(e).split("."), i = String(t).split("."), r = 0; r < Math.max(n.length, i.length); r++ ) { var o = parseInt(n[r] || 0, 10), s = parseInt(i[r] || 0, 10); if (o > s) return 1; if (o < s) return -1; } return 0; }, getRandomStr: function (e) { for ( var t = "", n = [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", ], i = 0; i < Number(e); i++ ) { t += n[Math.round(Math.random() * (n.length - 1))]; } return t; }, clone: function (e) { return JSON.parse(JSON.stringify(e)); }, startsWith: function (e, t) { return ( !(!e || !t || 0 === t.length || t.length > e.length) && e.substr(0, t.length) === t ); }, endsWith: function (e, t) { return ( !(!t || 0 === e.length || t.length > e.length) && e.substring(e.length - t.length) === t ); }, assign: function (e) { if (null == e) throw new TypeError("Cannot convert undefined or null to object"); for (var t = Object(e), n = 1; n < arguments.length; n++) { var i = arguments[n]; if (i) for (var r in i) Object.prototype.hasOwnProperty.call(i, r) && (t[r] = i[r]); } return t; }, deepEqual: function e(t, n) { if (t === n) return !0; if (t && "object" == typeof t && n && "object" == typeof n) { if (Object.keys(t).length !== Object.keys(n).length) return !1; for (var i in t) { if (Object.prototype.hasOwnProperty.call(n, i)) return !1; if (!e(t[i], n[i])) return !1; } return !0; } return !1; }, trimStart: function (e, t) { if (!e) return ""; if ("string" == typeof t && t.length) { var n = new RegExp("^" + t + "*"); e = e.replace(n, ""); } else e = e.replace(/^s*/, ""); return e; }, trimEnd: function (e, t) { if (!e) return ""; var n, i; if ("string" == typeof t && t.length) { n = new RegExp(t); i = e.length; for (; n.test(e.charAt(i));) i -= 1; return e.slice(0, i + 1); } n = /s/; i = e.length - 1; for (; n.test(e.charAt(i));) i -= 1; return e.slice(0, i + 1); }, isFunction: function (e) { return "function" == typeof e; }, }, p = (function (e) { a(n, e); function n() { return (null !== e && e.apply(this, arguments)) || this; } n.prototype.getOpenIdAsync = function (e, n) { var i = this; wx.login({ success: function (r) { r.code ? o.request({ url: u.GET_OPENID_URL, method: "GET", data: { key: e, code: r.code, }, success: function (e) { if (e && 200 === e.statusCode && e.data && e.data.data) { var t = e.data.data; i.setOpenid(t.oid); i.setUnionid(t.uid); return n && n(!0); } n && n(); }, fail: function (e) { t().v("wx request failed...", e); n && n(); }, }) : n && n(); }, fail: function () { n && n(); }, }); }; return n; })( (function (e) { a(n, e); function n() { var t = (null !== e && e.apply(this, arguments)) || this; t._openid = ""; t._unionid = ""; t._useOpenid = !1; return t; } n.prototype.initID = function (e) { var n = this; n._idType = n._useOpenid ? "openid" : "uuid"; t().v("id type: ", n._idType); o.getStorage(u.UNIONID, function (e) { n._unionid = e; }); this._useOpenid ? o.getStorage(u.OPENID, function (t) { n._openid = t; e && e(); }) : e && e(); }; n.prototype.setUseOpenid = function (e) { this._useOpenid = e; }; n.prototype.setOpenid = function (e) { if (!this._openid && e) { this._openid = e; o.setStorage(u.OPENID, e); } }; n.prototype.setUnionid = function (e) { if (!this._unionid && e) { this._unionid = e; o.setStorage(u.UNIONID, e); } }; n.prototype.getIdTracking = function () { var t = e.prototype.getIdTracking.call(this); this._openid && (t.openid = this._openid); this._unionid && (t.unionid = this._unionid); this._userid && (t.userid = this._userid); return t; }; n.prototype.getId = function () { return this._useOpenid ? this._openid : this._uuid; }; return n; })( (function () { function e() { this._uuid = ""; this._userid = ""; this._idType = ""; } e.prototype.createUUID = function () { return ( f.getRandomStr(10) + Date.now() + f.getRandomStr(7) + u.UUID_SUFFIX ); }; e.prototype.initUUID = function (e) { var t = this; o.getStorage(u.UUID, function (n) { if (n) t._uuid = n; else { t._uuid = t.createUUID(); o.setStorage(u.UUID, t._uuid); } e && e(n); }); }; e.prototype.initUserid = function () { var e = this; o.getStorage(u.USERID, function (n) { if (!e._userid && n) { e._userid = n; t().v("userId is ", n); } }); }; e.prototype.init = function (e) { var t = this; t.initUUID(function () { t.initUserid(); t.initID(e); }); }; e.prototype.setUserid = function (e) { if (!this._userid && e) { this._userid = e; o.setStorage(u.USERID, e); } }; e.prototype.removeUserid = function () { this._userid = void 0; o.removeStorageSync(u.USERID); }; e.prototype.getUserId = function () { return this._userid; }; e.prototype.getIdType = function () { return this._idType; }; e.prototype.getIdTracking = function () { var e = {}; this._uuid && (e.uuid = this._uuid); this._userid && (e.userid = this._userid); return e; }; return e; })(), ), ), l = ((c = null), function () { c || (c = new p()); return c; }), h = (function () { var e = null; function t() { var e = !1, t = null, n = []; this.addPageStart = function (n) { if (n && !e) { t = { ts: Date.now(), path: n, page_name: n, }; e = !0; } }; this.addPageEnd = function (i) { if (e && i && t && i === t.page_name) { var r = Date.now() - t.ts; t.duration = Math.abs(r); n.push(t); t = null; e = !1; } }; this.get = function () { return n; }; this.getCurrentPage = function () { return t; }; this.clear = function () { n.length = 0; }; } return function () { e || (e = new t()); return e; }; })(), d = {}; var g = (function () { var e = null, n = [], i = ""; function r() { return { add: function (e, r) { t().v("share origin: %o", e); var o = { title: e && e.title, path: e && e.path && e.path.split("?")[0], _xphp_sts: Date.now(), }; o.path && o.path.length > 1 && f.startsWith(o.path, "/") && (o.path = f.trimStart(o.path, "/")); var s = e.path || "", a = l().getId(); if (a) { var u = i.split(","), c = (u = u.filter(function (e) { return e.length > 0; })).indexOf(a); c >= 0 && (u = u.slice(0, c)); u.length < 3 && u.push(a); var p = u.join(","); -1 !== s.indexOf("?") ? (s += "&_xphp_ssrc=" + p) : (s += "?_xphp_ssrc=" + p); var h = Date.now(); s += "&_xphp_sts=" + h; if (r) { var g = (function (e) { var t = []; for (var n in e) "_xphp_ssrc" !== n && "_xphp_sts" !== n && t.push(n + "=" + e[n]); return t.join("&"); })(d), v = g ? g + "&_xphp_ssrc=" + p + "&_xphp_sts=" + h : "_xphp_ssrc=" + p + "&_xphp_sts=" + h; e.query = e.query ? e.query + "&_xphp_ssrc=" + p + "&_xphp_sts=" + h : v; } else e.path = s; o._xphp_ssrc = p; o._xphp_sts = h; } n.push(o); t().v("share: %o", e); return e; }, setShareSource: function (e) { i = e; }, clear: function () { n.length = 0; }, get: function () { return n; }, }; } return function () { e || (e = new r()); return e; }; })(), v = function (e) { if (e) try { return JSON.stringify(e); } catch (e) { } return ""; }, _ = function (e) { if (e) try { return JSON.parse(e); } catch (e) { } return null; }, y = (function () { var e = null, t = "", i = null, r = !1; function s() { this.load = function (e) { if (i) { o.removeStorage(t); e(); } else { t = "xphp_cache_" + n().appKey(); o.getStorage(t, function (n) { i = _(n) || {}; r = !0; o.removeStorage(t); e(); }); } }; this.save = function () { i && o.setStorage(t, v(i)); }; this.set = function (e, t) { i && (i[e] = t); }; this.get = function (e) { return (i || {})[e]; }; this.remove = function (e) { i && i[e] && delete i[e]; }; this.getAll = function () { return i; }; this.clear = function () { i = null; }; this.has = function (e) { return !!this.get(e); }; this.isLoaded = function () { return r; }; } return function () { e || (e = new s()); return e; }; })(), m = (function () { var e, n, i = [], r = []; function o() { if (i.length) { var e = y().get("ekvs"); if ( (function (e) { var t = 0; for (var n in e) Array.isArray(e[n]) && (t += e[n].length); return t; })(e) + i.length <= 1e4 ) { e = s(e, i); y().set("ekvs", e); } } } function s(e, t) { var i = (e = e || {})[n]; Array.isArray(i) && i.length ? (e[n] = i.concat(t)) : (e[n] = [].concat(t)); return e; } return function () { e || (e = { addEvent: function (e) { if (n) { i.unshift(e); if (i.length > 1) { o(); i.length = 0; } } else { t().w("session id is null: ", n); r.unshift(e); } }, setSessionId: function (e) { n = e; t().v("setSessionId: ", n); if (Array.isArray(r) && r.length && n) { for (var i = 0; i < r.length; i++) this.addEvent(r[i]); r.length = 0; } }, getEkvs: function () { var e = y().get("ekvs"); i && i.length && (e = s(e, i)); return e; }, clear: function () { y().remove("ekvs"); i.length = 0; }, }); return e; }; })(), S = "2g", I = "3g", O = "4g", A = "half_session", E = "close_session", N = "ekv", T = ["access", "access_subtype"], w = (function () { var e = null; function t() { var e = !1, t = {}; function i(e) { var i = y().get(u.IMPRINT); i && (t.imprint = i); t.device_type = "Phone"; t.sdk_version = u.IMPL_VERSION; t.appkey = n().appKey(); o.getDeviceInfo(function (e) { t.device_info = e || ""; }); var r = o.getAppInfoSync(); t.appid = r.appId; t.app_env = r.appEnv; t.app_version = r.appVersion; o.getSystemInfo(function (n) { o.getNetworkInfo(function (i) { var r = (function (e, t) { var n = {}; (e = e || {}).safeArea = e.safeArea || {}; var i = (t = t || {}).networkType; "none" === i && (i = "unknown"); var r = e.model || "", s = e.platform || "", a = e.brand || "", u = a.toLowerCase(); n.sdk_type = o.getSdkType(); n.platform = o.getPlatform(); n.platform_sdk_version = e.platformSDKVersion; n.platform_version = e.platformVersion; n.resolution = e.resolution; n.pixel_ratio = e.pixelRatio; n.os = s; n.font_size_setting = e.fontSizeSetting; n.device_model = r; n.device_brand = a; n.device_manufacturer = u; n.device_manuid = r; n.device_name = r; n.os_version = e.OSVersion; n.language = e.language; n.theme = e.theme; n.benchmark_level = e.benchmarkLevel; n.status_bar_height = e.statusBarHeight; n.safe_area_top = e.safeArea.top; n.safe_area_left = e.safeArea.left; n.safe_area_right = e.safeArea.right; n.safe_area_bottom = e.safeArea.bottom; n.safe_area_height = e.safeArea.height; n.safe_area_width = e.safeArea.width; n.storage = e.storage; n.screen_width = e.screenWidth; n.screen_height = e.screenHeight; n.host = e.host; switch ((i = i ? i.toLowerCase() : "")) { case O: n.access_subtype = "LTE"; n.access = "4G"; break; case I: n.access_subtype = "CDMA"; n.access = "3G"; break; case S: n.access_subtype = "GRPS"; n.access = "2G"; break; default: n.access = i; delete n.access_subtype; } return n; })(n, i); f.assign(t, r); e && e(); }); }); } return { init: function () { i(function () { e = !0; }); }, isLoaded: function () { return e; }, get: function () { return t; }, getRealtimeFields: function () { var e = {}; T.forEach(function (n) { e[n] = t[n]; }); return e; }, setIdTracking: function (e) { this.setItem("id_tracking", e); }, setIdType: function (e) { this.setItem("id_type", e); }, setAppVersion: function (e) { this.setItem("app_version", e); }, setSuperProperty: function (e) { t.sp || (t.sp = {}); t.sp.isv = e; }, getSuperProperty: function () { return t && t.sp ? t.sp.isv : ""; }, setItem: function (e, n) { t[e] = n; }, getItem: function (e) { return t[e]; }, }; } return { instance: function () { e || (e = t()); return e; }, }; })(), k = (function () { var e = null, n = null, i = null; function r() { return { resume: function (e) { var r = !1; i || (i = y().get(u.CURRENT_SESSION)); var s = new Date(); n = s.getTime(); if (!i || !i.end_time || n - i.end_time > u.SESSION_INTERVAL) { r = !0; !(function (e) { try { var n = (i || {}).options || {}, r = f.assign( {}, (function (e) { var n = {}; for (var i in e) 0 === i.indexOf("_xphp_") && (n[i] = e[i]); t().v("query: ", e); t().v("_xphp_params: ", n); return n; })(e.query), ); r.path = e.path || n.path; "gaode" !== o.getPlatform() && (r.scene = e.scene ? o.getPlatform() + "_" + e.scene : n.scene); var s = e.referrerInfo; s && (r.referrerAppId = s.appId); t().v("session options: ", r); var a = r[u.XPHP_SSRC]; a && g().setShareSource(a); var c = Date.now(); i = { id: f.getRandomStr(10) + c, start_time: c, options: r, }; } catch (e) { t().e("生成新session失败: ", e); } })(e); t().v("开始新的session(%s): ", i.id, i); } else t().v( "延续上一次session(%s): %s ", i.id, s.toLocaleTimeString(), i, ); return r; }, pause: function () { !(function () { if (i) { var e = new Date(); i.end_time = e.getTime(); "number" != typeof i.duration && (i.duration = 0); i.duration = i.end_time - n; y().set(u.CURRENT_SESSION, i); t().v("退出会话(%s): %s ", i.id, e.toLocaleTimeString(), i); } })(); }, getCurrentSessionId: function () { return (i || {}).id; }, getCurrentSession: function () { return i; }, cloneCurrentSession: function () { return f.clone(i); }, }; } return function () { e || (e = r()); return e; }; })(); function b(e) { var t = null; switch (e) { case A: t = (function () { var e = null, t = k().cloneCurrentSession(); t && (e = { header: { st: "1", }, analytics: { sessions: [t], }, }); return e; })(); break; case E: t = (function () { var e = null, t = {}, n = k().cloneCurrentSession(); if (n) { var i = h().get(), r = g().get(); Array.isArray(i) && i.length && (n.pages = f.clone(i)); Array.isArray(r) && r.length && (n.shares = f.clone(r)); h().clear(); g().clear(); t.sessions = [n]; } var o = m().getEkvs(); if (o) { t.ekvs = f.clone(o); m().clear(); } (t.sessions || t.ekvs) && (e = { analytics: t, }); return e; })(); break; case N: t = (function () { var e = null, t = m().getEkvs(); if (t) { e = { analytics: { ekvs: f.clone(t), }, }; m().clear(); } return e; })(); } return t; } var D = { sessions: "sn", ekvs: "e", active_user: "active_user", }, U = { sdk_type: "sdt", access: "ac", access_subtype: "acs", device_model: "dm", language: "lang", device_type: "dt", device_manufacturer: "dmf", device_name: "dn", platform_version: "pv", id_type: "it", font_size_setting: "fss", os_version: "ov", device_manuid: "did", platform_sdk_version: "psv", device_brand: "db", appkey: "ak", _id: "id", id_tracking: "itr", imprint: "imp", sdk_version: "sv", resolution: "rl", testToken: "ttn", theme: "t5", benchmark_level: "bml", screen_width: "sw", screen_height: "sh", status_bar_height: "sbh", safe_area_top: "sat", safe_area_left: "sal", safe_area_right: "sar", safe_area_bottom: "sab", safe_area_height: "sah", safe_area_width: "saw", pixel_ratio: "pr", storage: "s7", host: "hs", }, P = { uuid: "ud", unionid: "und", openid: "od", anonymousid: "nd", alipay_id: "ad", device_id: "dd", userid: "puid", }; function R(e, t) { var n = L(e, t); e && e.id_tracking && (n[t.id_tracking || "id_tracking"] = L(e.id_tracking, P)); return n; } function L(e, t) { var n = {}; for (var i in e) t[i] ? (n[t[i]] = e[i]) : (n[i] = e[i]); return n; } function C(e, t) { var n = {}; if (e) for (var i in e) e[i] && (n[t[i]] = e[i]); return n; } var M = ""; function x() { return M; } var V = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", j = (function (e) { for (var t = {}, n = 0, i = e.length; n < i; n++) t[e.charAt(n)] = n; return t; })(V), F = String.fromCharCode, G = function (e) { if (e.length < 2) { return (t = e.charCodeAt(0)) < 128 ? e : t < 2048 ? F(192 | (t >>> 6)) + F(128 | (63 & t)) : F(224 | ((t >>> 12) & 15)) + F(128 | ((t >>> 6) & 63)) + F(128 | (63 & t)); } var t = 65536 + 1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320); return ( F(240 | ((t >>> 18) & 7)) + F(128 | ((t >>> 12) & 63)) + F(128 | ((t >>> 6) & 63)) + F(128 | (63 & t)) ); }, q = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g, K = function (e) { var t = [0, 2, 1][e.length % 3], n = (e.charCodeAt(0) << 16) | ((e.length > 1 ? e.charCodeAt(1) : 0) << 8) | (e.length > 2 ? e.charCodeAt(2) : 0); return [ V.charAt(n >>> 18), V.charAt((n >>> 12) & 63), t >= 2 ? "=" : V.charAt((n >>> 6) & 63), t >= 1 ? "=" : V.charAt(63 & n), ].join(""); }, H = function (e) { return ( (t = (function (e) { return e.replace(q, G); })(e)), t.replace(/[\s\S]{1,3}/g, K) ); var t; }, Y = new RegExp(["[À-ß][€-¿]", "[à-ï][€-¿]{2}", "[ð-÷][€-¿]{3}"].join("|"), "g"), J = function (e) { switch (e.length) { case 4: var t = (((7 & e.charCodeAt(0)) << 18) | ((63 & e.charCodeAt(1)) << 12) | ((63 & e.charCodeAt(2)) << 6) | (63 & e.charCodeAt(3))) - 65536; return F(55296 + (t >>> 10)) + F(56320 + (1023 & t)); case 3: return F( ((15 & e.charCodeAt(0)) << 12) | ((63 & e.charCodeAt(1)) << 6) | (63 & e.charCodeAt(2)), ); default: return F(((31 & e.charCodeAt(0)) << 6) | (63 & e.charCodeAt(1))); } }, B = function (e) { var t = e.length, n = t % 4, i = (t > 0 ? j[e.charAt(0)] << 18 : 0) | (t > 1 ? j[e.charAt(1)] << 12 : 0) | (t > 2 ? j[e.charAt(2)] << 6 : 0) | (t > 3 ? j[e.charAt(3)] : 0), r = [F(i >>> 16), F((i >>> 8) & 255), F(255 & i)]; r.length -= [0, 0, 2, 1][n]; return r.join(""); }, X = function (e) { return ( (t = (function (e) { return e.replace(/[\s\S]{1,4}/g, B); })(e)), t.replace(Y, J) ); var t; }, W = function (e, t) { return t ? H(String(e)) .replace(/[+\/]/g, function (e) { return "+" == e ? "-" : "_"; }) .replace(/=/g, "") : H(String(e)); }, z = function (e) { return X( String(e) .replace(/[-_]/g, function (e) { return "-" == e ? "+" : "/"; }) .replace(/[^A-Za-z0-9\+\/]/g, ""), ); }; var Q = new (function () { var e = "", t = this; this.set = function (t) { e = t; }; this.get = function () { return e; }; this.getImpObj = function () { return _(z(e)); }; this.getItem = function (e) { var n = t.getImpObj(); return (n && n[e]) || ""; }; this.load = function () { e = y().get(u.IMPRINT); }; this.save = function () { e && y().set(u.IMPRINT, e); }; })(); function Z(e, n, i, r) { w.instance().setIdType(l().getIdType()); w.instance().setIdTracking(l().getIdTracking()); var s = l().getUserId(); s && e.analytics && (e.analytics.active_user = { uid: s, }); var a = f.clone(w.instance().get()); e.header = f.assign(a, e.header, { ts: Date.now(), testToken: x(), traceId: f.getRandomStr(10) + Date.now() + f.getRandomStr(9), }); var c = (function (e) { return { h: R(e.header, U), a: C(e.analytics, D), }; })(e), p = v(c), h = { url: u.LOG_URL, method: "POST", data: c, success: function (r) { var o = r.code || r.status || r.statusCode; if (200 === o || 413 === o) { t().i("数据发送成功: ", e, p); !(function (e) { if (e) { w.instance().setItem(u.IMPRINT, e); Q.set(e); Q.save(); t().v("imprint: ", Q.getImpObj()); Q.getItem("ttn_invalid") && (M = ""); } })((r.data || {}).imprint); "function" == typeof n && n(r); } else { t().w("数据发送失败: ", p); "function" == typeof i && i(); } }, fail: function (e) { t().w("超时: ", p); "function" == typeof i && i(); }, complete: function () { "function" == typeof r && r(); }, }; o.request( f.assign(h, { header: { "Msg-Type": o.getSdkType() + "/json", "disable-base64": "Y", }, }), ); } function $(e) { var t = e, n = []; this.enqueue = function (e) { "number" == typeof t && this.size() >= t && this.dequeue(); n.push(e); }; this.dequeue = function () { return n.shift(); }; this.front = function () { return n[0]; }; this.isEmpty = function () { return 0 === n.length; }; this.clear = function () { n.length = 0; }; this.size = function () { return n.length; }; this.items = function () { return n; }; this.print = function () { console.log(n.toString()); }; } var ee = (function () { var e = null, n = !1, i = [], r = new $(50); function o(e, t, n) { if (w.instance().isLoaded()) { t = t || {}; var i = b(e); if (i) { var s = w.instance().getRealtimeFields(); i.header = f.assign({}, i.header, s); i.noCache = t.noCache; r.enqueue(i); } "function" == typeof n && n(); } else setTimeout(function () { o(e, t, n); }, 100); } function s(e) { var t = r.front(); if (t) Z( t, function () { r.dequeue(); s(e); }, function () { var t = r.dequeue(); t && !t.noCache && i.push(t); s(e); }, ); else { !(function () { i.forEach(function (e) { r.enqueue(e); }); i.length = 0; })(); e(); } } function a(e) { if (l().getId()) if (n) t().i("队列正在发送中"); else { n = !0; s(function () { n = !1; "function" == typeof e && e(); }); } else { t().i("获取id标识失败,暂缓发送"); "function" == typeof e && e(); } } function c() { this.send = function (e, t, n) { e ? this.add(e, t, function () { a(n); }) : a(n); }; this.add = function (e, t, n) { o(e, t, n); }; this.load = function () { var e = y().get(u.REQUESTS); e && e.length && e.forEach(function (e) { r.enqueue(e); }); y().remove(u.REQUESTS); }; this.save = function () { y().set(u.REQUESTS, f.clone(r.items())); r.clear(); }; } return function () { e || (e = new c()); return e; }; })(), te = (function () { var e = null, i = null; function r() { this.setUserInfo = function (e) { i = e; }; this.update = function () { e(i) || o.getUserInfo(function (t) { e(t); }); }; function e(e) { if (e && "object" == typeof e) { var i = y().get(u.USER_INFO); (i && f.deepEqual(e, i)) || (function (e, i) { var r = n().appKey(), s = o.getSdkType(), a = l().getId(), c = l().getIdType(); if (!(r && s && a && c)) return; var f = { ak: n().appKey(), sdt: o.getSdkType(), uin: e.nickName, uia: e.avatar || e.avatarUrl, uig: e.gender, uit: e.country, uip: e.province, uic: e.city, uil: e.language, id: l().getId(), it: l().getIdType(), age: e.age, cln: e.constellation, }, p = JSON.stringify(f); p = W(p); o.request({ url: u.USERINFO_URL, method: "POST", header: { "content-type": "application/x-www-form-urlencoded", }, data: "ui=" + p, success: function (n) { t().v("用户信息上传成功: ", e); i && i(n && n.data && 200 === n.data.code); }, fail: function () { t().e("用户信息上传失败: ", e); i && i(!1); }, }); })(e, function (t) { t && y().set(u.USER_INFO, e); }); return !0; } return !1; } } return function () { e || (e = new r()); return e; }; })(); function ne(e, t) { this.id = e; this.ts = Date.now(); var n = typeof t; if ("string" === n && t) this[e] = t; else if ("object" === n) for (var i in t) ({}).hasOwnProperty.call(t, i) && (this[i] = t[i]); } function ie() { var e = !1, i = !1, r = 0; this.init = function (i) { t().v("sdk version: " + u.IMPL_VERSION); e ? t().v("Lib重复实例化") : y().load(function () { t().v("cache初始化成功: ", y().getAll()); !(function () { l().setUseOpenid && l().setUseOpenid(n().useOpenid()); l().init(function () { w.instance().init(); t().v("Header初始化成功"); }); })(); e = !0; "function" == typeof i && i(); t().tip("SDK集成成功"); }); }; this.resume = function (r) { if (e && !i) { t().v("showOptions: ", r); var o; i = !0; n().enableVerify() && r && r.query && ((o = r.query._ttn), (M = o || M)); this._resume(r); } }; this._resume = function (e) { ee().load(); var i = k().resume(e), r = k().getCurrentSessionId(); m().setSessionId(r); i && ee().add(A, {}, function () { l().setUseOpenid && l().setUseOpenid(n().useOpenid()); if (n().useOpenid() && n().autoGetOpenid() && !l().getId()) { t().v("get id async"); o(10, 3e3); } else { t().v("session auto send"); ee().send(); } }); function o(e, i) { l().getId() || e <= 0 || l().getOpenIdAsync(n().appKey(), function (n) { if (n) { t().v("获取id成功"); ee().send(); } else { t().v("获取openid失败,启动重试,剩余可用次数", e - 1); setTimeout(function () { o(e - 1, i); }, i); } }); } }; this.pause = function (o) { if (e) { i = !1; r = 0; k().pause(); n().uploadUserInfo() && te().update(); ee().send(E, {}, function () { ee().save(); y().save(); t().v("cache save success"); "function" == typeof o && o(); }); } }; this.setOpenid = function (e) { t().v("setOpenId: %s", e); l().setOpenid(e); ee().send(); }; this.setUnionid = function (e) { t().v("setUnionid: %s", e); l().setUnionid(e); }; this.setUserid = function (e, n) { t().v("setUserid: %s", e, n); l().setUserid(e, n); }; this.removeUserid = function () { t().v("removeUserid"); l().removeUserid(); }; this.setUserInfo = function (e) { t().v("setUserInfo: %s", e); te().setUserInfo(e); }; this.setAnonymousid = function (e) { t().v("setAnonymousId: %s", e); l().setAnonymousid(e); ee().send(); }; this.setAppVersion = function (e) { e && "string" != typeof e ? t().w("setAppVersion方法只接受字符串类型参数") : w.instance().setAppVersion(e); }; this.setAlipayUserid = function (e) { if (e && "string" != typeof e) t().w("setAlipayUserid方法只接受字符串类型参数"); else { t().v("setAlipayUserid: %s", e); l().setAlipayUserid(e); } }; this.setDeviceId = function (e) { if ("string" == typeof e) { l().setDeviceId(e); return e; } }; this.setSuperProperty = function (e) { if (e && "string" != typeof e) t().w("超级属性只支持字符串类型"); else { var n = this; if (w.instance().getSuperProperty() !== e) { w.instance().setSuperProperty(e); n.pause(function () { n.resume(); }); } } }; this.trackEvent = function (n, i) { if (e) { t().v("event: ", n, i); if ( (function (e, n) { if (!e || "string" != typeof e) { t().e( 'please check trackEvent id. id should be "string" and not null', ); return !1; } var i = ["id", "ts", "du"], r = {}; i.forEach(function (e) { r[e] = 1; }); if (r[e]) { t().e("eventId不能与以下保留字冲突: " + i.join(",")); return !1; } if (e.length > u.MAX_EVENTID_LENGTH) { t().e( "The maximum length of event id shall not exceed " + u.MAX_EVENTID_LENGTH, ); return !1; } if ( n && ("object" != typeof n || Array.isArray(n)) && "string" != typeof n ) { t().e( "please check trackEvent properties. properties should be string or object(not include Array)", ); return !1; } if ("object" == typeof n) { var o = 0; for (var s in n) if ({}.hasOwnProperty.call(n, s)) { if (s.length > u.MAX_PROPERTY_KEY_LENGTH) { t().e( "The maximum length of property key shall not exceed " + u.MAX_PROPERTY_KEY_LENGTH, ); return !1; } if (o >= u.MAX_PROPERTY_KEYS_COUNT) { t().e( "The maximum count of properties shall not exceed " + u.MAX_PROPERTY_KEYS_COUNT, ); return !1; } if (r[s]) { t().e("属性中的key不能与以下保留字冲突: " + i.join(",")); return !1; } o += 1; } } return !0; })(n, i) ) { var o = new ne(n, i); m().addEvent(o); var s = !!x(), a = s ? 0 : u.EVENT_SEND_DEFAULT_INTERVAL, c = Date.now(); if ( (function (e, t) { return ( "number" != typeof r || "number" != typeof t || r <= 0 || e - r > t ); })(c, a) ) { r = c; ee().send( N, { noCache: s, }, function () { }, ); } } } }; this.trackShare = function (n) { if (e) try { if (o.getSdkType().indexOf("game") > -1) { n = g().add(n, !0); t().v("shareQuery: ", n); } else { n = g().add(n, !1); t().v("sharePath: ", n.path); } } catch (e) { t().v("shareAppMessage: ", e); } return n; }; this.trackPageStart = function (t) { e && h().addPageStart(t); }; this.trackPageEnd = function (t) { e && h().addPageEnd(t); }; this.onShareAppMessage = function (e) { var t = this; o.onShareAppMessage(function () { return t.trackShare(e()); }); }; this.shareAppMessage = function (e) { this.trackShare(e); o.shareAppMessage(e); }; } var re = []; function oe() { } oe.prototype = { createMethod: function (e, n, i) { try { e[n] = i && i[n] ? function () { return i[n].apply(i, arguments); } : function () { re.push([n, [].slice.call(arguments)]); }; } catch (e) { t().v("create method errror: ", e); } }, installApi: function (e, n) { try { var i, r, o = "resume,pause,trackEvent,trackPageStart,trackPageEnd,trackShare,setUserid,setOpenid,setUnionid,setSuperProperty,setUserInfo".split( ",", ); for (i = 0, r = o.length; i < r; i++) this.createMethod(e, o[i], n); if (n) for (i = 0, r = re.length; i < r; i++) { var s = re[i]; try { n[s[0]].apply(n, s[1]); } catch (e) { t().v("impl[v[0]].apply error: ", s[0], e); } } } catch (e) { t().v("install api errror: ", e); } }, }; var ue = { init: function (e) { }, }, ce = new oe(), fe = { _inited: !1, _log: t(), preinit: function (e) { if (e && "object" == typeof e) for (var t in e) u[t] = e[t]; return u; }, use: function (e, t) { e && f.isFunction(e.install) ? e.install(fe, t) : f.isFunction(e) && e(fe, t); return fe; }, messager: r, init: function (e) { if (this._inited) t().v("已经实例过,请避免重复初始化"); else if (e) if (e.appKey) { "boolean" != typeof e.useOpenid && (e.useOpenid = !1); n().set(e); t().setDebug(e.debug); this._inited = !0; var i = this; r.emit(r.messageType.CONFIG_LOADED, e); try { var o = new ie(); t().v("成功创建Lib对象"); 0; o.init(function () { t().v("Lib对象初始化成功"); ce.installApi(i, o); t().v("安装Lib接口成功"); r.emit(r.messageType.UMA_LIB_INITED, e); }); ue.init(3e3); } catch (e) { t().w("创建Lib对象异常: " + e); } } else t().err("请确保传入正确的appkey"); else t().err("请正确设置相关信息!"); }, }; try { ce.installApi(fe, null); } catch (e) { t().w("xphp赋值异常: ", e); } var le = "", he = "2.8.0", de = "none", ge = {}, ve = Array.isArray; ge.isArray = ve || function (e) { return "[object Array]" === toString.call(e); }; ge.isObject = function (e) { return e === Object(e) && !ge.isArray(e); }; ge.isEmptyObject = function (e) { if (ge.isObject(e)) { for (var t in e) if (hasOwnProperty.call(e, t)) return !1; return !0; } return !1; }; ge.isUndefined = function (e) { return void 0 === e; }; ge.isString = function (e) { return "[object String]" === toString.call(e); }; ge.isDate = function (e) { return "[object Date]" === toString.call(e); }; ge.isNumber = function (e) { return "[object Number]" === toString.call(e); }; ge.each = function (e, t, n) { if (null != e) { var i = {}, r = Array.prototype.forEach; if (r && e.forEach === r) e.forEach(t, n); else if (e.length === +e.length) { for (var o = 0, s = e.length; o < s; o++) if (o in e && t.call(n, e[o], o, e) === i) return; } else for (var a in e) if (hasOwnProperty.call(e, a) && t.call(n, e[a], a, e) === i) return; } }; ge.buildQuery = function (e, t) { var n, i, r = []; void 0 === t && (t = "&"); ge.each(e, function (e, t) { n = encodeURIComponent(e.toString()); i = encodeURIComponent(t); r[r.length] = i + "=" + n; }); return r.join(t); }; ge.JSONDecode = function (e) { if (e) { try { return JSON.parse(e); } catch (e) { console.error("JSONDecode error", e); } return null; } }; ge.JSONEncode = function (e) { try { return JSON.stringify(e); } catch (e) { console.error("JSONEncode error", e); } }; var _e = Object.create(null); function ye(e) { t().v("开始构建 fetch body"); o.getSystemInfo(function (t) { o.getNetworkInfo(function (i) { var r = (i = i || {}).networkType; r = r === de ? "unknown" : r.toUpperCase(); _e.access = r; !(function (e, t) { var i = e.brand || ""; _e.deviceType = "Phone"; _e.sdkVersion = he; _e.appkey = n().appKey(); _e.sdkType = o.getSdkType(); _e.umid = l().getId(); if (e) { _e.language = e.language || ""; _e.os = e.OS; _e.osVersion = e.OSVersion; _e.deviceName = e.deviceName; _e.platformVersion = e.platformVersion; _e.platformSdkVersion = e.platformSDKVersion; _e.deviceBrand = i; var r = e.resolution.split("*"); if (ge.isArray(r)) { _e.resolutionHeight = Number(r[0]); _e.resolutionWidth = Number(r[1]); } } !(function (e) { if (e) { _e.installTime = e.install_datetime && Date.parse(e.install_datetime); _e.scene = e.install_scene; _e.channel = e.install_channel; _e.campaign = e.install_campaign; } })(Q.getImpObj()); t && t(_e); })(t, e); }); }); } var me = Object.create(null), Se = null, Ie = !1, Oe = { minFetchIntervalSeconds: 43200, }; function Ae(e) { e && ge.each(e, function (e) { me[e.k] = e; }); } function Ee() { var e = this; this.STORAGE_NAME = null; r.once(r.messageType.CONFIG_LOADED, function (n) { t().v("云配初始化开始..."); e.init(n); }); } Ee.prototype = { setDefaultValues: function (e) { Ie && ge.isObject(e) && ge.each(e, function (e, t) { (me[t] && me[t].v) || (me[t] = { v: e, }); }); }, getValue: function (e) { t().v("从配置项中读取 value, 当前配置为: ", me); t().v("待读取的 key : ", e); try { if (!Ie) return; var i = me[e] || {}; t().v("读取相应配置ing..., 结果为: ", i); if (ge.isNumber(i.e) && ge.isNumber(i.g)) { t().v("读取到相应配置, 开始数据上报..."); !(function (e) { var i = { appkey: n().appKey(), sdkType: o.getSdkType(), expId: e && e.e, groupId: e && e.g, clientTs: Date.now(), key: e && e.k, value: e && e.v, umid: l().getId(), }; try { o.request({ url: u.GETVALUEURL, method: "POST", data: [i], success: function (e) { e && 200 === e.statusCode ? t().v("上传数据成功", i) : t().w("ablog 请求成功, 返回结果异常 ", e); }, fail: function (e) { t().w("ablog 请求数据错误 ", i, e); }, }); } catch (e) { t().w("urequest 调用错误", e); } })(i); } return i.v; } catch (n) { t().w("getValue error, key: ", e); } }, active: function (e) { try { if (!Ie) return; var n, i; e && e.params && (n = e.params); e && e.callback && (i = e.callback); t().v("激活配置项: ", n); if (n) { t().v("本地已缓存的配置项: ", me); Ae(n); t().v("合并后的配置项: ", me); i && i(me); t().v("active 结束"); } else { t().v("配置项为空!! 读取本地配置..."); o.getStorage(this.STORAGE_NAME, function (e) { if (e) { Ae((e = ge.JSONDecode(e) || {}).params); t().v("当前本地配置项为: ", me); i && i(me); t().v("active 结束"); } else t().v("当前本地配置项为空, 退出激活"); }); } } catch (e) { t().w("SDK active 错误", e); } }, init: function (e) { if (e.appKey) { Se = e.appKey; this.STORAGE_NAME = "xphp_remote_config{{" + Se + "}}"; if (e.LOG_URL) u.LOG_URL = e.LOG_URL; if (e.GET_OPENID_URL) u.GET_OPENID_URL = e.GET_OPENID_URL; if (e.USERINFO_URL) u.USERINFO_URL = e.USERINFO_URL; } if (Se) if (Ie) t().w("SDK 已经初始化, 请避免重复初始化"); else { Ie = !0; this.setOptions(e); this.active(); } else t().err("请检查您的小程序 appKey, appKey 不能为空"); }, setOptions: function (e) { if (ge.isObject(e)) { var t = e.minFetchIntervalSeconds; ge.isNumber(t) && (Oe.minFetchIntervalSeconds = Math.max(t, 5)); } }, fetch: function (e) { if (Ie && this.STORAGE_NAME) { var n, i; e && e.active && (n = e.active); e && e.callback && (i = e.callback); var r = this; o.getStorage(this.STORAGE_NAME, function (e) { t().v("开始读缓存 data is ", e); if ( (e = ge.JSONDecode(e) || {}).params && e.ts && Date.now() - e.ts < 1e3 * Oe.minFetchIntervalSeconds ) { t().v( "缓存数据存在, 并且本次触发时间距离上次fetch触发时间未超过 fetch 时间间隔, 无需 fetch", ); i && i(e.params); } else ye(function (e) { t().v("缓存数据不存在, 构建 fetch body :", e); try { o.request({ url: u.FETCHURL, method: "POST", data: e, success: function (e) { if (e && 200 === e.statusCode && e.data && e.data.cc) { t().v("fetch 请求成功, 响应数据: ", e.data); var s = Object.create(null); ge.each(e.data.cc, function (e) { s[e.k] = e; }); var a = { ts: Date.now(), params: s, }; t().v("开始缓存 fetch 请求的云配置结果..."); o.setStorage( r.STORAGE_NAME, ge.JSONEncode(a), function (e) { t().v("缓存云配置成功, 缓存数据为: ", a); t().v("缓存云配置成功, 成功消息为: ", e); t().v("云配拉取数据是否自动激活: ", n); if (e && n) { t().v("激活云配置..."); r.active({ params: s, callback: i, }); } }, ); } else { t().w("fetch 请求成功,返回结果异常 ", e.data); i && i(); } }, fail: function (n) { t().w("fetch请求数据错误 ", e, n); i && i(); }, }); } catch (e) { t().w("urequest调用错误", e); } }); }); } }, }; var Ne = { install: function (e, t) { e.rc || (e.rc = new Ee()); e.messager.once(e.messager.messageType.CONFIG_LOADED, function () { e._log.v("plugin rc installed"); }); return e.rc; }, }, Te = !1, we = { install: function (e, t) { e.wxpluginwraper || (e.wxpluginwraper = function (t) { if (!Te) { t.onAppShow && t.onAppShow(function (t) { e.resume(t); }); t.onAppHide && t.onAppHide(function (t) { e.pause(t); }); Te = !0; } }); }, }, ke = "", be = {}; function De(e) { e && (ke = e); } function Ue(e, t) { if (e.onShareAppMessage) { var n = e.onShareAppMessage; e.onShareAppMessage = function (e) { var i = n.call(this, e) || {}, r = (function (e, t) { if (!e) return ""; var n = []; for (var i in t) "_xphp_ssrc" !== i && "_xphp_sts" !== i && n.push(i + "=" + t[i]); var r = n.join("&"); return r ? e + "?" + r : e; })(ke, be[ke]); !i.path && r && (i.path = r); var o = t.trackShare.call(this, i); return void 0 === o ? i : o; }; } } function Pe(e, t, n) { var i = e[t]; e[t] = function (e) { n.call(this, e); i && i.call(this, e); }; } function Re(e) { try { fe.resume(e, !0); } catch (e) { t().v("onAppShow: ", e); } } function Le() { try { fe.pause(); } catch (e) { t().v("onAppHide: ", e); } } function Ce() { try { De(this.route); fe.trackPageStart(this.route); } catch (e) { t().v("onPageShow: ", e); } } function Me(e) { try { De(this.route); e && ((n = this.route), (i = e), n && (be[n] = i)); t().v("Page onLoad: ", this.route, e); } catch (e) { t().v("onPageLoad: ", e); } var n, i; } function xe() { try { fe.trackPageEnd(this.route); } catch (e) { t().v("onPageHide: ", e); } } try { var Ve = App; App = function (e) { Pe(e, "onLaunch", function () { !(function (e) { try { fe.init(e); } catch (e) { t().v("onAppLaunch: ", e); } })(e.xstatConfig); }); Pe(e, "onShow", Re); Pe(e, "onHide", Le); Ve(e); }; } catch (e) { t().w("App重写异常"); } try { var je = Page; Page = function (e) { Pe(e, "onShow", Ce); Pe(e, "onHide", xe); Pe(e, "onUnload", xe); Pe(e, "onLoad", Me); Ue(e, fe); je(e); }; } catch (e) { t().w("Page重写异常"); } try { var Fe = Component; Component = function (e) { try { e.methods = e.methods || {}; var t = e.methods; Pe(t, "onShow", Ce); Pe(t, "onHide", xe); Pe(t, "onUnload", xe); Pe(t, "onLoad", Me); Ue(t, fe); Fe(e); } catch (t) { Fe(e); } }; } catch (e) { t().w("Component重写异常"); } var Ge = fe.init; fe.init = function (e) { if (e && e.useOpenid) { t().tip_w(t().repeat("!")); t().tip_w( "openid已开启,请确保使用setOpenid设置openid或通过设置autoGetOpenid为true,并在xstat后台设置secret由xstat帮您获取", ); t().tip_w(t().repeat("!")); } Ge.call(fe, e); }; fe.use(Ne); fe.use(we); wx.xstat = fe; module.exports = fe;