"use strict"; var e = "[UMENG] -- ", 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 (t) { try { console.log("%c " + e + t, "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.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 = function (e, t) { o = 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 o(e, t) }; function s(e, t) { o(e, t); function n() { this.constructor = e } e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) } var a = new (function (e) { s(n, e); function n() { return null !== e && e.apply(this, arguments) || this } n.prototype.getSdkType = function () { return "wxgamemp" }; n.prototype.getUserInfo = function (e) { var n = { fail: function () { e && e() }, success: function (t) { if (t && t.userInfo) { var n = t.userInfo; e && e({ avatar: n.avatarUrl, nickName: n.nickName, gender: n.gender, country: n.country, province: n.province, city: n.city, language: n.language }) } } }; try { wx.getSetting({ success: function (e) { e.authSetting["scope.userInfo"] && wx.getUserInfo(n) }, fail: function () { e() } }) } catch (e) { t.e("getUserInfo error", e) } }; return n }(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 }())), u = { SESSION_INTERVAL: 3e4, LOG_URL: "/wxm_logs", GET_OPENID_URL: "/uminiprogram_logs/wx/getuut", USERINFO_URL: "/uminiprogram_logs/comm/uif", ENDPOINT: "https://umini.shujupie.com", ENDPOINTB: "https://ulogs.umeng.com", 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.2", ALIPAY_AVAILABLE_VERSION: "10.1.52", SHARE_PATH: "um_share_path", SHARES: "shares", REQUESTS: "requests", UUID: "um_uuid", UUID_SUFFIX: "ud", OPENID: "um_od", UNIONID: "um_unid", ALIPAYID: "um_alipayid", USERID: "um_userid", PROVIDER: "um_provider", SWANID: "um_swanid", ANONYMOUSID: "um_anonymousid", LAUNCH_OPTIONS: "LAUNCH_OPTIONS", UM_SSRC: "_um_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) { s(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 ? a.request({ url: u.ENDPOINT + 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) { s(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); a.getStorage(u.UNIONID, (function (e) { n._unionid = e })); this._useOpenid ? a.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; a.setStorage(u.OPENID, e) } }; n.prototype.setUnionid = function (e) { if (!this._unionid && e) { this._unionid = e; a.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._provider = ""; 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; a.getStorage(u.UUID, (function (n) { if (n) t._uuid = n; else { t._uuid = t.createUUID(); a.setStorage(u.UUID, t._uuid) } e && e(n) })) }; e.prototype.initUserid = function () { var e = this; a.getStorage(u.USERID, (function (n) { if (!e._userid && n) { e._userid = n; t().v("userId is ", n) } })); a.getStorage(u.PROVIDER, (function (n) { if (!e._provider && n) { e._provider = n; t().v("provider is ", n) } })) }; e.prototype.init = function (e) { var t = this; t.initUUID((function () { t.initUserid(); t.initID(e) })) }; e.prototype.setUserid = function (e, t) { if (!this._userid && e) { this._userid = e; this._provider = t; a.setStorage(u.USERID, e); a.setStorage(u.PROVIDER, t) } }; e.prototype.removeUserid = function () { this._userid = void 0; this._provider = void 0; a.removeStorageSync(u.USERID); a.removeStorageSync(u.PROVIDER) }; e.prototype.getUserId = function () { return this._userid }; e.prototype.getProvider = function () { return this._provider }; 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 }), d = 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 } }(), h = {}; 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], _um_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 += "&_um_ssrc=" + p : s += "?_um_ssrc=" + p; var d = Date.now(); s += "&_um_sts=" + d; if (r) { var g = function (e) { var t = []; for (var n in e) "_um_ssrc" !== n && "_um_sts" !== n && t.push(n + "=" + e[n]); return t.join("&") }(h), v = g ? g + "&_um_ssrc=" + p + "&_um_sts=" + d : "_um_ssrc=" + p + "&_um_sts=" + d; e.query = e.query ? e.query + "&_um_ssrc=" + p + "&_um_sts=" + d : v } else e.path = s; o._um_ssrc = p; o._um_sts = d } 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 o() { this.load = function (e) { if (i) { a.removeStorage(t); e() } else { t = "um_cache_" + n().appKey(); a.getStorage(t, (function (n) { i = _(n) || {}; r = !0; a.removeStorage(t); e() })) } }; this.save = function () { i && a.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 o); return e } }(), m = "ekvs", S = function () { var e, n, i = [], r = []; function o() { if (i.length) { var e = y().get(m); 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(m, 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(m); i && i.length && (e = s(e, i)); return e }, clear: function () { y().remove(m); i.length = 0 } }); return e } }(), I = "2g", E = "3g", O = "4g", A = "half_session", N = "close_session", T = "ekv", w = ["access", "access_subtype"], k = 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(); a.getDeviceInfo((function (e) { t.device_info = e || "" })); var r = a.getAppInfoSync(); t.appid = r.appId; t.app_env = r.appEnv; t.app_version = r.appVersion; a.getSystemInfo((function (n) { a.getNetworkInfo((function (i) { var r = function (e, t) { var n = {}; e = e || {}; e.safeArea = e.safeArea || {}; t = t || {}; var i = t.networkType; "none" === i && (i = "unknown"); var r = e.model || "", o = e.platform || "", s = e.brand || "", u = s.toLowerCase(); n.sdk_type = a.getSdkType(); n.platform = a.getPlatform(); n.platform_sdk_version = e.platformSDKVersion; n.platform_version = e.platformVersion; n.resolution = e.resolution; n.pixel_ratio = e.pixelRatio; n.os = o; n.font_size_setting = e.fontSizeSetting; n.device_model = r; n.device_brand = s; 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 E: n.access_subtype = "CDMA"; n.access = "3G"; break; case I: 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 = {}; w.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 } } }(), b = 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 o = new Date; n = o.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("_um_") && (n[i] = e[i]); t().v("query: ", e); t().v("_um_params: ", n); return n }(e.query)); r.path = e.path || n.path; "gaode" !== a.getPlatform() && (r.scene = e.scene ? a.getPlatform() + "_" + e.scene : n.scene); var o = e.referrerInfo; o && (r.referrerAppId = o.appId); t().v("session options: ", r); var s = r[u.UM_SSRC]; s && g().setShareSource(s); 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, o.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 D(e) { var t = null; switch (e) { case A: t = function () { var e = null, t = b().cloneCurrentSession(); t && (e = {header: {st: "1"}, analytics: {sessions: [t]}}); return e }(); break; case N: t = function () { var e = null, t = {}, n = b().cloneCurrentSession(); if (n) { var i = d().get(), r = g().get(); Array.isArray(i) && i.length && (n.pages = f.clone(i)); Array.isArray(r) && r.length && (n.shares = f.clone(r)); d().clear(); g().clear(); t.sessions = [n] } var o = S().getEkvs(); if (o) { t.ekvs = f.clone(o); S().clear() } (t.sessions || t.ekvs) && (e = {analytics: t}); return e }(); break; case T: t = function () { var e = null, t = S().getEkvs(); if (t) { e = {analytics: {ekvs: f.clone(t)}}; S().clear() } return e }() } return t } var R = {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 L(e, t) { var n = C(e, t); e && e.id_tracking && (n[t.id_tracking || "id_tracking"] = C(e.id_tracking, P)); return n } function C(e, t) { var n = {}; for (var i in e) t[i] ? n[t[i]] = e[i] : n[i] = e[i]; return n } function M(e, t) { var n = {}; if (e) for (var i in e) e[i] && (n[t[i]] = e[i]); return n } var x = ""; function V() { return x } var j = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", G = function (e) { for (var t = {}, n = 0, i = e.length; n < i; n++) t[e.charAt(n)] = n; return t }(j), K = String.fromCharCode, F = function (e) { if (e.length < 2) { return (t = e.charCodeAt(0)) < 128 ? e : t < 2048 ? K(192 | t >>> 6) + K(128 | 63 & t) : K(224 | t >>> 12 & 15) + K(128 | t >>> 6 & 63) + K(128 | 63 & t) } var t = 65536 + 1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320); return K(240 | t >>> 18 & 7) + K(128 | t >>> 12 & 63) + K(128 | t >>> 6 & 63) + K(128 | 63 & t) }, q = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g, H = 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 [j.charAt(n >>> 18), j.charAt(n >>> 12 & 63), t >= 2 ? "=" : j.charAt(n >>> 6 & 63), t >= 1 ? "=" : j.charAt(63 & n)].join("") }, B = function (e) { return t = function (e) { return e.replace(q, F) }(e), t.replace(/[\s\S]{1,3}/g, H); var t }, Y = new RegExp(["[À-ß][€-¿]", "[à-ï][€-¿]{2}", "[ð-÷][€-¿]{3}"].join("|"), "g"), W = 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 K(55296 + (t >>> 10)) + K(56320 + (1023 & t)); case 3: return K((15 & e.charCodeAt(0)) << 12 | (63 & e.charCodeAt(1)) << 6 | 63 & e.charCodeAt(2)); default: return K((31 & e.charCodeAt(0)) << 6 | 63 & e.charCodeAt(1)) } }, J = function (e) { var t = e.length, n = t % 4, i = (t > 0 ? G[e.charAt(0)] << 18 : 0) | (t > 1 ? G[e.charAt(1)] << 12 : 0) | (t > 2 ? G[e.charAt(2)] << 6 : 0) | (t > 3 ? G[e.charAt(3)] : 0), r = [K(i >>> 16), K(i >>> 8 & 255), K(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, J) }(e), t.replace(Y, W); var t }, z = function (e, t) { return t ? B(String(e)).replace(/[+\/]/g, (function (e) { return "+" == e ? "-" : "_" })).replace(/=/g, "") : B(String(e)) }, Q = function (e) { return X(String(e).replace(/[-_]/g, (function (e) { return "-" == e ? "+" : "/" })).replace(/[^A-Za-z0-9\+\/]/g, "")) }; var Z = new function () { var e = "", t = this; this.set = function (t) { e = t }; this.get = function () { return e }; this.getImpObj = function () { return _(Q(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 $(e, n, i, r) { k.instance().setIdType(l().getIdType()); k.instance().setIdTracking(l().getIdTracking()); var o = l().getUserId(); o && e.analytics && (e.analytics.active_user = {puid: o, provider: l().getProvider()}); var s = f.clone(k.instance().get()); e.header = f.assign(s, e.header, { ts: Date.now(), testToken: V(), traceId: f.getRandomStr(10) + Date.now() + f.getRandomStr(9) }); var c, p = function (e) { return {h: L(e.header, U), a: M(e.analytics, R)} }(e), d = v(p); c = p; var h = { url: u.ENDPOINT + 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, d); !function (e) { if (e) { k.instance().setItem(u.IMPRINT, e); Z.set(e); Z.save(); t().v("imprint: ", Z.getImpObj()); Z.getItem("ttn_invalid") && (x = "") } }((r.data || {}).imprint); "function" == typeof n && n(r) } else { t().w("数据发送失败: ", d); "function" == typeof i && i() } }, fail: function (e) { t().w("超时: ", d); "function" == typeof i && i() }, complete: function () { "function" == typeof r && r() } }; a.request(f.assign(h, { header: { "Msg-Type": a.getSdkType() + "/json", "disable-base64": "Y", "content-type": "application/json" } })) } function ee(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 te = function () { var e = null, n = !1, i = [], r = new ee(50); function o(e, t, n) { if (k.instance().isLoaded()) { t = t || {}; var i = D(e); if (i) { var s = k.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) $(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 } }(), ne = function () { var e = null, i = null; function r() { this.setUserInfo = function (e) { i = e }; this.update = function () { e(i) || a.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(), o = a.getSdkType(), s = l().getId(), c = l().getIdType(); if (!(r && o && s && c)) return; var f = { ak: n().appKey(), sdt: a.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 = z(p); a.request({ url: u.ENDPOINT + 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 ie(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 re() { 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 () { k.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, x = o || x); this._resume(r) } }; this._resume = function (e) { te().load(); var i = b().resume(e), r = b().getCurrentSessionId(); S().setSessionId(r); i && te().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"); te().send() } })); function o(e, i) { l().getId() || e <= 0 || l().getOpenIdAsync(n().appKey(), (function (n) { if (n) { t().v("获取id成功"); te().send() } else { t().v("获取openid失败,启动重试,剩余可用次数", e - 1); setTimeout((function () { o(e - 1, i) }), i) } })) } }; this.pause = function (o) { if (e) { i = !1; r = 0; b().pause(); n().uploadUserInfo() && ne().update(); te().send(N, {}, (function () { te().save(); y().save(); t().v("cache save success"); "function" == typeof o && o() })) } }; this.setOpenid = function (e) { t().v("setOpenId: %s", e); l().setOpenid(e); te().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); ne().setUserInfo(e) }; this.setAnonymousid = function (e) { t().v("setAnonymousId: %s", e); l().setAnonymousid(e); te().send() }; this.setAppVersion = function (e) { e && "string" != typeof e ? t().w("setAppVersion方法只接受字符串类型参数") : k.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 (k.instance().getSuperProperty() !== e) { k.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 ie(n, i); S().addEvent(o); var s = !!V(), 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; te().send(T, {noCache: s}, (function () { })) } } } }; this.trackShare = function (n) { if (e) try { if (a.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 && d().addPageStart(t) }; this.trackPageEnd = function (t) { e && d().addPageEnd(t) }; this.onShareAppMessage = function (e) { var t = this; a.onShareAppMessage((function () { return t.trackShare(e()) })) }; this.shareAppMessage = function (e) { this.trackShare(e); a.shareAppMessage(e) } } var oe = []; function se() { } se.prototype = { createMethod: function (e, n, i) { try { e[n] = i && i[n] ? function () { return i[n].apply(i, arguments) } : function () { oe.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,onShareAppMessage,shareAppMessage".split(","); for (i = 0, r = o.length; i < r; i++) this.createMethod(e, o[i], n); if (n) for (i = 0, r = oe.length; i < r; i++) { var s = oe[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 ae = [u.ENDPOINT, u.ENDPOINTB]; function ue(e, n) { var i, r; 0 === e || 1 === e && n ? i = u.ENDPOINT : 2 === e && n ? i = u.ENDPOINTB : n && (i = ae[e]); if (e >= ae.length || n) { n && (r = i, u.ENDPOINT = r); n && t().v("命中可用服务", i); !n && t().tip_w("未命中可用服务"); return !1 } a.request({ url: u.ENDPOINT + "/uminiprogram_logs/ckdh", success: function (t) { 200 === (t.code || t.status || t.statusCode) && t.data && 200 === t.data.code ? ue(e + 1, !0) : ue(e + 1, !1) }, fail: function () { ue(e + 1, !1) } }) } var ce = { init: function (e) { u.ENDPOINTB && setTimeout((function () { ue(0, !1) }), e) } }, fe = new se, pe = { _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(pe, t) : f.isFunction(e) && e(pe, t); return pe }, messager: r, init: function (e) { if (this._inited) t().v("已经实例过,请避免重复初始化"); else if (e) if (e.appKey) { "boolean" != typeof e.useOpenid && (e.useOpenid = !0); n().set(e); t().setDebug(e.debug); this._inited = !0; var i = this; r.emit(r.messageType.CONFIG_LOADED, e); try { var o = new re; t().v("成功创建Lib对象"); 0; o.init((function () { t().v("Lib对象初始化成功"); fe.installApi(i, o); t().v("安装Lib接口成功"); r.emit(r.messageType.UMA_LIB_INITED, e) })); ce.init(3e3) } catch (e) { t().w("创建Lib对象异常: " + e) } } else t().err("请确保传入正确的appkey"); else t().err("请正确设置相关信息!") } }; try { fe.installApi(pe, null) } catch (e) { t().w("uma赋值异常: ", e) } var le = { FETCH_URL: "https://ucc.umeng.com/v1/mini/fetch", ABLOG_URL: "https://pslog.umeng.com/mini_ablog", SDK_VERSION: "2.8.2", MOBILE_NETWORK_NONE: "none", MOBILE_NETWORK_2G: "2g", MOBILE_NETWORK_3G: "3g", MOBILE_NETWORK_4G: "4g", MOBILE_NETWORK_5G: "5g", MOBILE_NETWORK_WIFI: "wifi", IMPRINT: "imprint" }, de = {}, he = Array.isArray; de.isArray = he || function (e) { return "[object Array]" === toString.call(e) }; de.isObject = function (e) { return e === Object(e) && !de.isArray(e) }; de.isEmptyObject = function (e) { if (de.isObject(e)) { for (var t in e) if (hasOwnProperty.call(e, t)) return !1; return !0 } return !1 }; de.isUndefined = function (e) { return void 0 === e }; de.isString = function (e) { return "[object String]" === toString.call(e) }; de.isDate = function (e) { return "[object Date]" === toString.call(e) }; de.isNumber = function (e) { return "[object Number]" === toString.call(e) }; de.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 } }; de.buildQuery = function (e, t) { var n, i, r = []; void 0 === t && (t = "&"); de.each(e, (function (e, t) { n = encodeURIComponent(e.toString()); i = encodeURIComponent(t); r[r.length] = i + "=" + n })); return r.join(t) }; de.JSONDecode = function (e) { if (e) { try { return JSON.parse(e) } catch (e) { console.error("JSONDecode error", e) } return null } }; de.JSONEncode = function (e) { try { return JSON.stringify(e) } catch (e) { console.error("JSONEncode error", e) } }; var ge = Object.create(null); function ve(e) { t().v("开始构建 fetch body"); a.getSystemInfo((function (t) { a.getNetworkInfo((function (i) { var r = (i = i || {}).networkType; r = r === le.MOBILE_NETWORK_NONE ? "unknown" : r.toUpperCase(); ge.access = r; !function (e, t) { var i = e.brand || ""; ge.deviceType = "Phone"; ge.sdkVersion = le.SDK_VERSION; ge.appkey = n().appKey(); ge.sdkType = a.getSdkType(); ge.umid = l().getId(); if (e) { ge.language = e.language || ""; ge.os = e.OS; ge.osVersion = e.OSVersion; ge.deviceName = e.deviceName; ge.platformVersion = e.platformVersion; ge.platformSdkVersion = e.platformSDKVersion; ge.deviceBrand = i; var r = e.resolution.split("*"); if (de.isArray(r)) { ge.resolutionHeight = Number(r[0]); ge.resolutionWidth = Number(r[1]) } } !function (e) { if (e) { ge.installTime = e.install_datetime && Date.parse(e.install_datetime); ge.scene = e.install_scene; ge.channel = e.install_channel; ge.campaign = e.install_campaign } }(Z.getImpObj()); t && t(ge) }(t, e) })) })) } var _e = Object.create(null), ye = null, me = !1, Se = {minFetchIntervalSeconds: 43200}; function Ie(e) { e && de.each(e, (function (e) { _e[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) { me && de.isObject(e) && de.each(e, (function (e, t) { _e[t] && _e[t].v || (_e[t] = {v: e}) })) }, getValue: function (e) { t().v("从配置项中读取 value, 当前配置为: ", _e); t().v("待读取的 key : ", e); try { if (!me) return; var i = _e[e] || {}; t().v("读取相应配置ing..., 结果为: ", i); if (de.isNumber(i.e) && de.isNumber(i.g)) { t().v("读取到相应配置, 开始数据上报..."); !function (e) { var i = { appkey: n().appKey(), sdkType: a.getSdkType(), expId: e && e.e, groupId: e && e.g, clientTs: Date.now(), key: e && e.k, value: e && e.v, umid: l().getId() }; try { a.request({ url: le.ABLOG_URL, 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 (!me) return; var n, i; e && e.params && (n = e.params); e && e.callback && (i = e.callback); t().v("激活配置项: ", n); if (n) { t().v("本地已缓存的配置项: ", _e); Ie(n); t().v("合并后的配置项: ", _e); i && i(_e); t().v("active 结束") } else { t().v("配置项为空!! 读取本地配置..."); a.getStorage(this.STORAGE_NAME, (function (e) { if (e) { Ie((e = de.JSONDecode(e) || {}).params); t().v("当前本地配置项为: ", _e); i && i(_e); t().v("active 结束") } else t().v("当前本地配置项为空, 退出激活") })) } } catch (e) { t().w("SDK active 错误", e) } }, init: function (e) { if (e.appKey) { ye = e.appKey; this.STORAGE_NAME = "um_remote_config_{{" + ye + "}}" } if (ye) if (me) t().w("SDK 已经初始化, 请避免重复初始化"); else { me = !0; this.setOptions(e); this.active() } else t().err("请检查您的小程序 appKey, appKey 不能为空") }, setOptions: function (e) { if (de.isObject(e)) { var t = e.minFetchIntervalSeconds; de.isNumber(t) && (Se.minFetchIntervalSeconds = Math.max(t, 5)) } }, fetch: function (e) { if (me && this.STORAGE_NAME) { var n, i; e && e.active && (n = e.active); e && e.callback && (i = e.callback); var r = this; a.getStorage(this.STORAGE_NAME, (function (e) { t().v("开始读缓存 data is ", e); if ((e = de.JSONDecode(e) || {}).params && e.ts && Date.now() - e.ts < 1e3 * Se.minFetchIntervalSeconds) { t().v("缓存数据存在, 并且本次触发时间距离上次fetch触发时间未超过 fetch 时间间隔, 无需 fetch"); i && i(e.params) } else ve((function (e) { t().v("缓存数据不存在, 构建 fetch body :", e); try { a.request({ url: le.FETCH_URL, method: "POST", data: e, success: function (e) { if (e && 200 === e.statusCode && e.data && e.data.cc) { t().v("fetch 请求成功, 响应数据: ", e.data); var o = Object.create(null); de.each(e.data.cc, (function (e) { o[e.k] = e })); var s = {ts: Date.now(), params: o}; t().v("开始缓存 fetch 请求的云配置结果..."); a.setStorage(r.STORAGE_NAME, de.JSONEncode(s), (function (e) { t().v("缓存云配置成功, 缓存数据为: ", s); t().v("缓存云配置成功, 成功消息为: ", e); t().v("云配拉取数据是否自动激活: ", n); if (e && n) { t().v("激活云配置..."); r.active({params: o, 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 Oe = { 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 } }, Ae = ".", Ne = "_um", Te = "revenue", we = "stage", ke = "level", be = "running", De = "end", Re = "init", Ue = "set", Pe = [Ne, we, "start"].join(Ae); function Le(e) { var t = {}; for (var n in e) { var i = e[n]; if ("object" == typeof i) for (var r in i) t[n + Ae + r] = i[r]; else t[n] = i } return t } var Ce = { install: function (e, t) { e.revenue = function (t) { e.trackEvent([Ne, Te, t.group].join(Ae), Le(t)) }; var n = 0; e.stage = { onStart: function (t) { n = Date.now(); e.trackEvent(Pe, Le(t)) }, onEnd: function (t) { "number" != typeof t._um_sdu && (t._um_sdu = 0 !== n ? Date.now() - n : 0); e.trackEvent([Ne, we, De, t.event].join(Ae), Le(t)) }, onRunning: function (t) { e.trackEvent([Ne, we, be, t.event].join(Ae), Le(t)) } }; e.level = { onInitLevel: function (t) { e.trackEvent([Ne, ke, Re].join(Ae), Le(t)) }, onSetLevel: function (t) { e.trackEvent([Ne, ke, Ue].join(Ae), Le(t)) } }; e.messager.once(e.messager.messageType.CONFIG_LOADED, (function () { e._log.v("plugin game-ext installed") })); return e } }; var api = window['wx']; api && api.onShow((function (e) { t().v("game onShow: ", e); n = e.query, h = n; var n; pe.resume(e, !0) })); api && api.onHide((function () { t().v("game onHide"); pe.pause() })); var Me = pe.init; pe.init = function (e) { if (e && e.useOpenid) { t().tip_w(t().repeat("!")); t().tip_w("您选择了使用openid进行统计,请确保使用setOpenid回传openid或通过设置autoGetOpenid为true,并在友盟后台设置secret由友盟帮您获取"); t().tip_w(t().repeat("!")) } Me.call(pe, e) }; pe.use(Oe); pe.use(Ce); api && (api.uma = pe); //module.exports = pe;