import {genSaltSync, getSalt, hashSync, setRandomFallback} from 'bcryptjs'; export enum TrackingType { /** 进入游戏 */ Open = 'open', /** 复活 */ Revive = 'revive', /** 锤子 */ Hammer = 'hammer', /** 画笔 */ Brush = 'brush', /** 重置 */ Reset = 'reset', } const KEY = `sssssssssk`; try { genSaltSync(10); } catch (e) { setRandomFallback(function (bytes) { const randomBytes = new Array(bytes); for (var i = 0; i < bytes; i++) { randomBytes[i] = Math.floor(Math.random() * 256); } return randomBytes; }); } export class TrackingManager { public static send(type: TrackingType) { const salt = genSaltSync(10); const hash = hashSync(KEY, salt); var xhr = new XMLHttpRequest(); xhr.open("POST", 'https://api.ad.game.06zk.com/app/anchor'); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Key", hash); xhr.setRequestHeader("Href", location.href); const formData = `listener=${type}`; xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); const data = JSON.parse(xhr.responseText); if (data.code === 200) { console.log(`上报${type}成功`); } else { console.log(`上报${type}失败`); } } }; xhr.send(formData); } } if (!CC_EDITOR) { TrackingManager.send(TrackingType.Open); }