<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">var conf = window.zs.wx;

var reportSdk = function() {
    var self = {};
    var adUrl = "https://ad.ali-yun.wang/api/";
    var selfCfgURL = conf.adApiUrl;
    /**
     * ********************************************************
     */
    var rotateLeft = function(lValue, iShiftBits) {
        return lValue &lt;&lt; iShiftBits | lValue &gt;&gt;&gt; 32 - iShiftBits;
    };
    var addUnsigned = function(lX, lY) {
        var lX4, lY4, lX8, lY8, lResult;
        lX8 = lX &amp; 2147483648;
        lY8 = lY &amp; 2147483648;
        lX4 = lX &amp; 1073741824;
        lY4 = lY &amp; 1073741824;
        lResult = (lX &amp; 1073741823) + (lY &amp; 1073741823);
        if (lX4 &amp; lY4) return lResult ^ 2147483648 ^ lX8 ^ lY8;
        if (lX4 | lY4) {
            if (lResult &amp; 1073741824) return lResult ^ 3221225472 ^ lX8 ^ lY8;
            else return lResult ^ 1073741824 ^ lX8 ^ lY8;
        } else {
            return lResult ^ lX8 ^ lY8;
        }
    };
    var F = function(x, y, z) {
        return x &amp; y | ~x &amp; z;
    };
    var G = function(x, y, z) {
        return x &amp; z | y &amp; ~z;
    };
    var H = function(x, y, z) {
        return x ^ y ^ z;
    };
    var I = function(x, y, z) {
        return y ^ (x | ~z);
    };
    var FF = function(a, b, c, d, x, s, ac) {
        a = addUnsigned(a, addUnsigned(addUnsigned(F(b, c, d), x), ac));
        return addUnsigned(rotateLeft(a, s), b);
    };
    var GG = function(a, b, c, d, x, s, ac) {
        a = addUnsigned(a, addUnsigned(addUnsigned(G(b, c, d), x), ac));
        return addUnsigned(rotateLeft(a, s), b);
    };
    var HH = function(a, b, c, d, x, s, ac) {
        a = addUnsigned(a, addUnsigned(addUnsigned(H(b, c, d), x), ac));
        return addUnsigned(rotateLeft(a, s), b);
    };
    var II = function(a, b, c, d, x, s, ac) {
        a = addUnsigned(a, addUnsigned(addUnsigned(I(b, c, d), x), ac));
        return addUnsigned(rotateLeft(a, s), b);
    };
    var convertToWordArray = function(string) {
        var lWordCount;
        var lMessageLength = string.length;
        var lNumberOfWordsTempOne = lMessageLength + 8;
        var lNumberOfWordsTempTwo = (lNumberOfWordsTempOne - lNumberOfWordsTempOne % 64) / 64;
        var lNumberOfWords = (lNumberOfWordsTempTwo + 1) * 16;
        var lWordArray = Array(lNumberOfWords - 1);
        var lBytePosition = 0;
        var lByteCount = 0;
        while (lByteCount &lt; lMessageLength) {
            lWordCount = (lByteCount - lByteCount % 4) / 4;
            lBytePosition = lByteCount % 4 * 8;
            lWordArray[lWordCount] = lWordArray[lWordCount] | string.charCodeAt(lByteCount) &lt;&lt; lBytePosition;
            lByteCount++;
        }
        lWordCount = (lByteCount - lByteCount % 4) / 4;
        lBytePosition = lByteCount % 4 * 8;
        lWordArray[lWordCount] = lWordArray[lWordCount] | 128 &lt;&lt; lBytePosition;
        lWordArray[lNumberOfWords - 2] = lMessageLength &lt;&lt; 3;
        lWordArray[lNumberOfWords - 1] = lMessageLength &gt;&gt;&gt; 29;
        return lWordArray;
    };
    var wordToHex = function(lValue) {
        var WordToHexValue = "",
            WordToHexValueTemp = "",
            lByte, lCount;
        for (lCount = 0; lCount &lt;= 3; lCount++) {
            lByte = lValue &gt;&gt;&gt; lCount * 8 &amp; 255;
            WordToHexValueTemp = "0" + lByte.toString(16);
            WordToHexValue = WordToHexValue + WordToHexValueTemp.substr(WordToHexValueTemp.length - 2, 2);
        }
        return WordToHexValue;
    };
    var uTF8Encode = function(string) {
        string = string.replace(/\x0d\x0a/g, "\n");
        var output = "";
        for (var n = 0; n &lt; string.length; n++) {
            var c = string.charCodeAt(n);
            if (c &lt; 128) {
                output += String.fromCharCode(c);
            } else if (c &gt; 127 &amp;&amp; c &lt; 2048) {
                output += String.fromCharCode(c &gt;&gt; 6 | 192);
                output += String.fromCharCode(c &amp; 63 | 128);
            } else {
                output += String.fromCharCode(c &gt;&gt; 12 | 224);
                output += String.fromCharCode(c &gt;&gt; 6 &amp; 63 | 128);
                output += String.fromCharCode(c &amp; 63 | 128);
            }
        }
        return output;
    };
    var md5 = function(string) {
        var x = Array();
        var k, AA, BB, CC, DD, a, b, c, d;
        var S11 = 7,
            S12 = 12,
            S13 = 17,
            S14 = 22;
        var S21 = 5,
            S22 = 9,
            S23 = 14,
            S24 = 20;
        var S31 = 4,
            S32 = 11,
            S33 = 16,
            S34 = 23;
        var S41 = 6,
            S42 = 10,
            S43 = 15,
            S44 = 21;
        string = uTF8Encode(string);
        x = convertToWordArray(string);
        a = 1732584193;
        b = 4023233417;
        c = 2562383102;
        d = 271733878;
        for (k = 0; k &lt; x.length; k += 16) {
            AA = a;
            BB = b;
            CC = c;
            DD = d;
            a = FF(a, b, c, d, x[k + 0], S11, 3614090360);
            d = FF(d, a, b, c, x[k + 1], S12, 3905402710);
            c = FF(c, d, a, b, x[k + 2], S13, 606105819);
            b = FF(b, c, d, a, x[k + 3], S14, 3250441966);
            a = FF(a, b, c, d, x[k + 4], S11, 4118548399);
            d = FF(d, a, b, c, x[k + 5], S12, 1200080426);
            c = FF(c, d, a, b, x[k + 6], S13, 2821735955);
            b = FF(b, c, d, a, x[k + 7], S14, 4249261313);
            a = FF(a, b, c, d, x[k + 8], S11, 1770035416);
            d = FF(d, a, b, c, x[k + 9], S12, 2336552879);
            c = FF(c, d, a, b, x[k + 10], S13, 4294925233);
            b = FF(b, c, d, a, x[k + 11], S14, 2304563134);
            a = FF(a, b, c, d, x[k + 12], S11, 1804603682);
            d = FF(d, a, b, c, x[k + 13], S12, 4254626195);
            c = FF(c, d, a, b, x[k + 14], S13, 2792965006);
            b = FF(b, c, d, a, x[k + 15], S14, 1236535329);
            a = GG(a, b, c, d, x[k + 1], S21, 4129170786);
            d = GG(d, a, b, c, x[k + 6], S22, 3225465664);
            c = GG(c, d, a, b, x[k + 11], S23, 643717713);
            b = GG(b, c, d, a, x[k + 0], S24, 3921069994);
            a = GG(a, b, c, d, x[k + 5], S21, 3593408605);
            d = GG(d, a, b, c, x[k + 10], S22, 38016083);
            c = GG(c, d, a, b, x[k + 15], S23, 3634488961);
            b = GG(b, c, d, a, x[k + 4], S24, 3889429448);
            a = GG(a, b, c, d, x[k + 9], S21, 568446438);
            d = GG(d, a, b, c, x[k + 14], S22, 3275163606);
            c = GG(c, d, a, b, x[k + 3], S23, 4107603335);
            b = GG(b, c, d, a, x[k + 8], S24, 1163531501);
            a = GG(a, b, c, d, x[k + 13], S21, 2850285829);
            d = GG(d, a, b, c, x[k + 2], S22, 4243563512);
            c = GG(c, d, a, b, x[k + 7], S23, 1735328473);
            b = GG(b, c, d, a, x[k + 12], S24, 2368359562);
            a = HH(a, b, c, d, x[k + 5], S31, 4294588738);
            d = HH(d, a, b, c, x[k + 8], S32, 2272392833);
            c = HH(c, d, a, b, x[k + 11], S33, 1839030562);
            b = HH(b, c, d, a, x[k + 14], S34, 4259657740);
            a = HH(a, b, c, d, x[k + 1], S31, 2763975236);
            d = HH(d, a, b, c, x[k + 4], S32, 1272893353);
            c = HH(c, d, a, b, x[k + 7], S33, 4139469664);
            b = HH(b, c, d, a, x[k + 10], S34, 3200236656);
            a = HH(a, b, c, d, x[k + 13], S31, 681279174);
            d = HH(d, a, b, c, x[k + 0], S32, 3936430074);
            c = HH(c, d, a, b, x[k + 3], S33, 3572445317);
            b = HH(b, c, d, a, x[k + 6], S34, 76029189);
            a = HH(a, b, c, d, x[k + 9], S31, 3654602809);
            d = HH(d, a, b, c, x[k + 12], S32, 3873151461);
            c = HH(c, d, a, b, x[k + 15], S33, 530742520);
            b = HH(b, c, d, a, x[k + 2], S34, 3299628645);
            a = II(a, b, c, d, x[k + 0], S41, 4096336452);
            d = II(d, a, b, c, x[k + 7], S42, 1126891415);
            c = II(c, d, a, b, x[k + 14], S43, 2878612391);
            b = II(b, c, d, a, x[k + 5], S44, 4237533241);
            a = II(a, b, c, d, x[k + 12], S41, 1700485571);
            d = II(d, a, b, c, x[k + 3], S42, 2399980690);
            c = II(c, d, a, b, x[k + 10], S43, 4293915773);
            b = II(b, c, d, a, x[k + 1], S44, 2240044497);
            a = II(a, b, c, d, x[k + 8], S41, 1873313359);
            d = II(d, a, b, c, x[k + 15], S42, 4264355552);
            c = II(c, d, a, b, x[k + 6], S43, 2734768916);
            b = II(b, c, d, a, x[k + 13], S44, 1309151649);
            a = II(a, b, c, d, x[k + 4], S41, 4149444226);
            d = II(d, a, b, c, x[k + 11], S42, 3174756917);
            c = II(c, d, a, b, x[k + 2], S43, 718787259);
            b = II(b, c, d, a, x[k + 9], S44, 3951481745);
            a = addUnsigned(a, AA);
            b = addUnsigned(b, BB);
            c = addUnsigned(c, CC);
            d = addUnsigned(d, DD);
        }
        var tempValue = wordToHex(a) + wordToHex(b) + wordToHex(c) + wordToHex(d);
        return tempValue.toLowerCase();
    }
    /**
     * *******************************************************************************
     */
    ;
    var _object2Query = function(obj) {
        var args = [];
        for (var k in obj) args.push(k + "=" + obj[k]);
        return args.join("&amp;");
        // è¿”å›žå¯¹è±¡  
    }
    /**
     * var crypto = require('crypto');
     * 
     * var params = {
            openid: openId,
            key: key,
        }
    * @param {å‚æ•°} params å¯¹è±¡
    */
    ;
    var _buildSign = function(params, isSecret) {
        isSecret = isSecret || true;
        var sortedKeys = Object.keys(params).sort();
        var signParam = "";
        for (var i = 0; i &lt; sortedKeys.length; i++) {
            signParam += sortedKeys[i] + ":" + params[sortedKeys[i]];
        }
        if (isSecret) signParam += conf.secret;
        // signParam = signParam.toLowerCase();
        var md5sign = md5(signParam);
        md5sign = md5sign.toLowerCase();
        return md5sign;
    };
    var _getAdByPosition = function(position) {
        var allAdData = getCache("zsAd");
        switch (position) {
            case "1":
                return allAdData.more;
                break;

            case "2":
                return allAdData.promotion;
                break;

            case "3":
                return allAdData.indexFloat;
                break;

            case "7":
                return allAdData.indexLeft;
                break;

            case "8":
                return allAdData.gameFloat;
                break;

            case "9":
                return allAdData.endPage;
                break;

            case "11":
                return allAdData.indexLeftFloat;
                break;

            case "12":
                return allAdData.backAd;
                break;

            case "13":
                return allAdData.iosLinkAd;
                break;

            default:
                break;
        }
        return null;
    };
    var _getBoxMiniInfo = function(position) {
        var curAdData = _getAdByPosition(position);
        if (curAdData == null) {
            console.error("box is null");
            return null;
        }
        for (var index = 0; index &lt; curAdData.length; index++) {
            if (curAdData[index].app_type == "4") {
                return curAdData[index];
            }
        }
        console.error("box is null");
        return null;
    };
    var _getCustomLink = function(position, appid) {};
    var request = function(url, data, method, success, fail, complete) {}
    /**è‡ªç&nbsp;”äº§å“å€’é‡ç»Ÿè®¡åˆ†æž */
    ;
    var sendExport = function(toAppId) {};
    var sendAppFrom = function() {};
    var postExportAppLog = function(toid, openid) {};
    var postExportAppLogNew = function(toid, openid, uiData) {};
    var setStorageSync = function(key, value) {
        self.zsStorage = self.zsStorage || {};
        self.zsStorage[key] = value;
    };
    var getStorageSync = function(key) {
        self.zsStorage = self.zsStorage || {};
        return self.zsStorage[key];
    };
    var getCache = function(key, expire) {
        if (!expire) {
            return getStorageSync(key);
        } else {
            var lastCacheTime = getStorageSync(key + "_time");
            if (lastCacheTime == null || Date.now() - Number(lastCacheTime) &lt; expire) {
                return getStorageSync(key);
            } else {
                return null;
            }
        }
    };
    var isSameDay = function(checkTime) {
        return new Date(checkTime).toDateString() === new Date().toDateString();
    };
    var getCacheNewDay = function(key, checkNewDay) {
        if (!checkNewDay) {
            return getStorageSync(key);
        } else {
            var lastCacheTime = getStorageSync(key + "_time");
            if (lastCacheTime == null || !isSameDay(lastCacheTime)) {
                return getStorageSync(key);
            } else {
                return null;
            }
        }
    };
    var setCache = function(key, value) {
        setStorageSync(key, value);
        setStorageSync(key + "_time", Date.now());
    };
    var isFun = function(fun) {
        if (typeof fun == "function") return true;
        return false;
    }
    /**
     * è·³è½¬æˆåŠŸä¹‹åŽæ•°æ®ä¸ŠæŠ¥
     * @param {number} row  ä»ŽloadAdæŽ¥å£ä¸­è¿”å›žçš„æ•°ç»„é¡¹   @example indexLeft[0]
     * @param {string} userid  å°æ¸¸æˆä¸­çš„ç”¨æˆ·Id
     */
    ;
    var collect = function(row, userid, uiData) {};
    self.userId = null;
    self.platformId = null;
    self.srcAppId = "";
    self.launchScene = "";
    self.adJumpNum = null;
    self.adJumpAppId = null;
    self.isEnableExportAdLinkId = "0";
    self.init = function(user_id, platform_id) {
        console.log("zsAdSdk.init");
        this.userId = user_id;
        this.platformId = platform_id;
        if (typeof wx === "undefined") {
            this.launchScene = 1038;
            this.srcAppId = "";
        } else {
            var launchInfo = wx.getLaunchOptionsSync();
            this.launchScene = launchInfo.scene ? launchInfo.scene : "";
            this.srcAppId = launchInfo.referrerInfo &amp;&amp; launchInfo.referrerInfo.appId ? launchInfo.referrerInfo.appId : "";
        }
        sendAppFrom();
        self.statisticsGDT(1);
    };
    self.sendVideoLog = function() {
        if (!conf.uploadLog) {
            return;
        }
        if (this.userId == null) {
            console.error("userId is null");
            return;
        }
        var url = adUrl + "jump_log/app_video";
        var data = {
            appid: conf.appId,
            from_appid: this.srcAppId,
            user_id: this.userId
        };
        request(url, data, "POST", function() {}, function() {
            console.log('jump_log/app_video" fail');
        }, function() {
            console.log('jump_log/app_video" complete');
        });
    };
    self.cfgCbList = [];
    self.inCfgRequest = false;
    self.loadConfig = function(success, fail) {
        var url = selfCfgURL;
        var currentTime = Math.round(new Date().getTime() / 1e3).toString();
        var sceneId = 0;
        if (typeof wx !== "undefined") {}
        var signParams = {
            appid: conf.appId,
            timestamp: currentTime,
            scene: sceneId
        };
        var sign = _buildSign(signParams);
        var data = Object.assign({}, signParams, {
            sign: sign
        });
        var cacheExpire = 6e4;
        //1000å»¶é•¿é…ç½®èŽ·å–æ—¶é—´
        var cache = getCache("zsCfg", cacheExpire);
        if (cache) {
            if (isFun(success)) success(cache);
        } else if (this.inCfgRequest) {
            this.cfgCbList.push({
                success: success,
                fail: fail
            });
        } else {
            this.inCfgRequest = true;
            this.cfgCbList.push({
                success: success,
                fail: fail
            });
            request(url, data, "POST", function(e) {
                var retValue = e.data;
                setCache("zsCfg", retValue);
                console.log("ljc", "zsCfg", retValue);
                self.adJumpNum = retValue.zs_ad_jump_num;
                self.adJumpAppId = retValue.zs_jump_appid;
                self.isEnableExportAdLinkId = retValue.zs_export_ad_switch;
                for (var index = 0; index &lt; self.cfgCbList.length; index++) {
                    if (isFun(self.cfgCbList[index].success)) self.cfgCbList[index].success(retValue);
                }
                self.cfgCbList = [];
                self.inCfgRequest = false;
            }, function(e) {
                for (var index = 0; index &lt; self.cfgCbList.length; index++) {
                    if (isFun(self.cfgCbList[index].fail)) self.cfgCbList[index].fail(e);
                }
                self.cfgCbList = [];
                self.inCfgRequest = false;
            }, function(e) {
                self.cfgCbList = [];
                self.inCfgRequest = false;
                console.log("post loadConfig complete");
            });
        }
    };
    self.adCbList = [];
    self.inAdRequest = false;
    /**
     * èŽ·å–å¹¿å‘Šæ•°æ®
     * @param {*} callback 
     * @returns  more æ›´å¤šå¥½çŽ© ä¸ªäººä¸­å¿ƒçš„å¹¿å‘Š çŽ°å·²ç»ä¸ç”¨äº†
     *   promotion é¦–é¡µæŽ¨å¹¿   é¦–é¡µå¼€å§‹æŒ‰é’®ä¸‹çš„å¹¿å‘Š
     *   indexFloat é¦–é¡µæµ®åŠ¨å¹¿å‘Š é¦–é¡µå³ä¸Šçš„å¹¿å‘Š
     *   indexLeft é¦–é¡µä¾§æ&nbsp;
     *   gameFloat æ¸¸æˆé¡µæµ®åŠ¨å¹¿å‘Š 
     *   endPage ç»“æŸé¡µå¹¿å‘Š
     */
    self.loadAd = function(callback) {
        var cacheExpire = 6e4;
        //1000
        var cache = getCache("zsAd", cacheExpire);
        if (cache) {
            callback(cache);
        } else if (this.inAdRequest) {
            this.adCbList.push(callback);
        } else {
            this.inAdRequest = true;
            this.adCbList.push(callback);
            var url = adUrl + "appad_new/index";
            var currentTime = Math.round(new Date().getTime() / 1e3).toString();
            var signParams = {
                appid: conf.appId,
                timestamp: currentTime
            };
            var sign = _buildSign(signParams);
            var data = Object.assign({}, signParams, {
                sign: sign
            });
            request(url, data, "POST", function(res) {
                self.inAdRequest = false;
                for (var z in res.data) {
                    var arr = res.data[z];
                    arr.sort(function() {
                        return Math.random() &gt; .5 ? 1 : -1;
                    });
                }
                var retValue = {
                    /**
                     * ä¸ªäººä¸­å¿ƒçš„å¹¿å‘Š çŽ°å·²ç»ä¸ç”¨äº†
                     */
                    more: res.data["position-1"] || [],
                    /**
                     * é¦–é¡µå¼€å§‹æŒ‰é’®ä¸‹çš„å¹¿å‘Š
                     */
                    promotion: res.data["position-2"] || [],
                    /**
                     * é¦–é¡µå³ä¸Šçš„æµ®åŠ¨å¹¿å‘Š
                     */
                    indexFloat: res.data["position-3"] || [],
                    /**
                     * é¦–é¡µå³ä¸Šçš„æµ®åŠ¨å¹¿å‘Š
                     */
                    banner: res.data["position-4"] || [],
                    /**
                     * é¦–é¡µä¾§æ&nbsp;
                     */
                    indexLeft: res.data["position-7"] || [],
                    /**
                     * æ¸¸æˆé¡µæµ®åŠ¨å¹¿å‘Š
                     */
                    gameFloat: res.data["position-8"] || [],
                    /**
                     * ç»“æŸé¡µå¹¿å‘Š
                     */
                    endPage: res.data["position-9"] || [],
                    /**
                     * é¦–é¡µå·¦ä¾§æµ®åŠ¨å¹¿å‘Š
                     */
                    indexLeftFloat: res.data["position-11"] || [],
                    /**
                     * è¿”å›žé¡µå¹¿å‘Š
                     */
                    backAd: res.data["position-12"] || [],
                    /**
                     * iosè·³è½¬åˆ—è¡¨
                     */
                    iosLinkAd: res.data["position-13"] || []
                };
                setCache("zsAd", retValue);
                for (var index = 0; index &lt; self.adCbList.length; index++) {
                    if (isFun(self.adCbList[index])) self.adCbList[index](retValue);
                }
                self.adCbList = [];
            }, function(error) {
                self.inAdRequest = false;
                console.log("requestAdData fail");
                var retValue = {
                    /**
                     * ä¸ªäººä¸­å¿ƒçš„å¹¿å‘Š çŽ°å·²ç»ä¸ç”¨äº†
                     */
                    more: [],
                    /**
                     * é¦–é¡µå¼€å§‹æŒ‰é’®ä¸‹çš„å¹¿å‘Š
                     */
                    promotion: [],
                    /**
                     * é¦–é¡µå³ä¸Šçš„æµ®åŠ¨å¹¿å‘Š
                     */
                    indexFloat: [],
                    /**
                     * é¦–é¡µå³ä¸Šçš„æµ®åŠ¨å¹¿å‘Š
                     */
                    banner: [],
                    /**
                     * é¦–é¡µä¾§æ&nbsp;
                     */
                    indexLeft: [],
                    /**
                     * æ¸¸æˆé¡µæµ®åŠ¨å¹¿å‘Š
                     */
                    gameFloat: [],
                    /**
                     * ç»“æŸé¡µå¹¿å‘Š
                     */
                    endPage: [],
                    /**
                     * é¦–é¡µå·¦ä¾§æµ®åŠ¨å¹¿å‘Š
                     */
                    indexLeftFloat: [],
                    /**
                     * è¿”å›žé¡µå¹¿å‘Š
                     */
                    backAd: [],
                    /**
                     * iosè·³è½¬åˆ—è¡¨
                     */
                    iosLinkAd: []
                };
                for (var index = 0; index &lt; self.adCbList.length; index++) {
                    if (isFun(self.adCbList[index])) self.adCbList[index](retValue);
                }
                self.adCbList = [];
            }, function(res) {
                console.log("requestAdData complete");
            });
        }
    }
    /**
     * è·³è½¬å°ç¨‹åº
     * @param {*} row    ä»ŽloadAdæŽ¥å£ä¸­è¿”å›žçš„æ•°ç»„é¡¹   @example indexLeft[0]
     * @param {*} openid å°æ¸¸æˆä¸­çš„ç”¨æˆ·openid
     * @param {function} success æŽ¥å£è°ƒç”¨æˆåŠŸçš„å›žè°ƒå‡½æ•°
     * @param {function} fail æŽ¥å£è°ƒç”¨å¤±è´¥çš„å›žè°ƒå‡½æ•°
     * @param {function} complete æŽ¥å£è°ƒç”¨ç»“æŸçš„å›žè°ƒå‡½æ•°ï¼ˆè°ƒç”¨æˆåŠŸã€å¤±è´¥éƒ½ä¼šæ‰§è¡Œï¼‰
     */
    ;
    self.navigate2Mini = function(row, openid, success, fail, complete, uiData) {
        // //ljcæµ‹è¯•
        // postExportAppLogNew(row.app_id, openid,uiData);
        // return
        var targetMini = row;
        var unClickAd = getCacheNewDay("unClickAd") || {};
        var unlinkAd = getCacheNewDay("unlinkAd") || {};
        console.log(JSON.stringify(unClickAd));
        if (unClickAd[targetMini.appid]) {
            console.log("å¹¿å‘Šä½ä»Šæ—¥ç‚¹å‡»è¿‡");
            var allAdList = [];
            var adCfg = getCache("zsAd");
            for (const key in adCfg) {
                if (adCfg.hasOwnProperty(key)) {
                    var subAd = adCfg[key];
                    for (let index = 0; index &lt; subAd.length; index++) {
                        const adData = subAd[index];
                        allAdList.push(adData);
                    }
                }
            }
            var filterArr = allAdList.filter(element =&gt; unlinkAd[element.appid] ? false : true);
            // console.log("ç­›é€‰ä¹‹åŽçš„IDï¼š", filterArr)
            var idx = Math.floor(Math.random() * filterArr.length);
            targetMini = filterArr[idx];
            console.log("æ–°çš„å¯¼å‡º", targetMini);
        } else {
            unClickAd[targetMini.appid] = true;
            setCache("unClickAd", unClickAd);
        }
        if (!targetMini) {
            setCache("unlinkAd", {});
            self.navigate2Mini(row, openid, success, fail, complete);
            return;
        }
        unlinkAd[targetMini.appid] = true;
        setCache("unlinkAd", unlinkAd);
        if (typeof wx === "undefined") {
            if (isFun(fail)) fail();
            if (isFun(complete)) complete();
            return;
        }
        targetMini.extraData = targetMini.extraData || {};
        wx.navigateToMiniProgram({
            appId: targetMini.appid,
            path: targetMini.link_path,
            extraData: targetMini.extraData,
            success: function(e) {
                collect(targetMini, openid, uiData);
                if (isFun(success)) success();
            },
            fail: function(e) {
                if (isFun(fail)) fail();
            },
            complete: function(e) {
                if (isFun(complete)) complete();
            }
        });
    };
    self.getShareCard = function(success, fail) {
        var url = adUrl + "app_card/item";
        var currentTime = Math.round(new Date().getTime() / 1e3).toString();
        var signParams = {
            appid: conf.appId,
            timestamp: currentTime
        };
        var sign = _buildSign(signParams);
        var data = Object.assign({}, signParams, {
            sign: sign
        });
        request(url, data, "POST", function(e) {
            if (isFun(success) &amp;&amp; e &amp;&amp; e.data) {
                success(e.data.card);
            } else if (isFun(fail)) {
                fail(e);
            }
        }, function(e) {
            if (isFun(fail)) fail(e);
        }, function(e) {
            console.log("post GetShareCard complete!");
        });
    };
    self.collectShareCardClick = function(cardId, userId, success, fail) {
        var url = adUrl + "app_card/collect";
        var currentTime = Math.round(new Date().getTime() / 1e3).toString();
        var signParams = {
            appid: conf.appId,
            card_id: cardId,
            user_id: userId,
            timestamp: currentTime
        };
        var sign = _buildSign(signParams);
        var data = Object.assign({}, signParams, {
            sign: sign
        });
        request(url, data, "POST", function(e) {
            if (isFun(success)) success(e);
        }, function(e) {
            if (isFun(fail)) fail(e);
        }, function(e) {
            console.log("post CollectShareCardClick complete!");
        });
    };
    var linkSceneList = [1011, 1012, 1013, 1025, 1031, 1032, 1047, 1048, 1049, 1124, 1125, 1126];
    self.launchInfo = null;
    self.isExportValid = function() {
        if (this.launchInfo &amp;&amp; linkSceneList.indexOf(this.launchInfo.scene) &gt;= 0) {
            return false;
        }
        if (this.launchInfo != null &amp;&amp; this.launchInfo.query != null) {
            return this.launchInfo.query.customLink != this.isEnableExportAdLinkId;
        }
        return true;
    };
    self.isFromLink = function() {
        if (this.launchInfo &amp;&amp; linkSceneList.indexOf(this.launchInfo.scene) &gt;= 0) {
            console.log("open by code");
            return true;
        }
        return this.launchInfo != null &amp;&amp; this.launchInfo.query != null &amp;&amp; this.launchInfo.query.customLink != null;
    }
    /**
     * å¹¿ç‚¹é€šç»Ÿè®¡
     * @param {*} type ç»Ÿè®¡ç±»åž‹ 1:è¿›å…¥æ¸¸æˆ 2ï¼šè§†é¢‘ç»Ÿè®¡ 3ï¼šå¯¼å‡ºç»Ÿè®¡
     */
    ;
    self.statisticsGDT = function(type) {
        if (!conf.uploadLog) {
            return;
        }
        if (self.userId == null) {
            console.error("userId is null");
            return;
        }
        var url = adUrl + "adlog/update_log";
        var data = {
            appid: conf.appId,
            from_appid: self.srcAppId,
            // å¯¼é‡è¿›æ¥çš„appId
            user_id: self.userId,
            scene: self.launchScene,
            // åœºæ™¯å€¼
            type: type
        };
        request(url, data, "POST", function() {}, function() {
            console.log('adlog/update_log" fail');
        }, function() {
            console.log('adlog/update_log" complete');
        });
    };
    var onAppLaunch = function() {
        if (typeof wx === "undefined") {} else {
            self.launchInfo = wx.getLaunchOptionsSync();
            console.log("scene:" + self.launchInfo.scene);
            if (self.isFromLink()) {
                console.log("open by link");
            }
        }
    };
    onAppLaunch();
    return self;
}();

var theEnv = typeof window !== "undefined" ? window : global;

theEnv.zs = theEnv.zs || {};

theEnv.zs.reportSdk = reportSdk;</pre></body></html>