63 lines
1.7 KiB
TypeScript
63 lines
1.7 KiB
TypeScript
import {genSaltSync, hashSync, setRandomFallback} from 'bcryptjs';
|
|
|
|
export enum TrackingType {
|
|
/** 进入游戏 */
|
|
Open = 'open',
|
|
/** 试用皮肤 */
|
|
TryOutSkin = 'try-out-skin',
|
|
/** 三倍积分 */
|
|
TriplePickup = 'triple-pickup',
|
|
/** 恢复 */
|
|
Recover = 'recover',
|
|
/** 免费试用 */
|
|
FreeTrial = 'free-trial',
|
|
}
|
|
|
|
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);
|
|
}
|