SDK相关的整理
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
import { IAnalyticsSDK } from "../core/IAnalyticsSDK";
|
||||
import { logger } from "db://assets/Scripts/Main/Common/Logger";
|
||||
|
||||
/**
|
||||
* UmaAnalyticsSDK
|
||||
*
|
||||
* - 负责集成友盟统计(UMeng+)
|
||||
* - 提供初始化、事件上报、开关控制等功能
|
||||
*/
|
||||
export class UmaAnalyticsSDK implements IAnalyticsSDK {
|
||||
private enabled: boolean = false;
|
||||
|
||||
/**
|
||||
* 初始化友盟统计
|
||||
* @param cb 初始化完成后的回调
|
||||
*
|
||||
* - 通常在游戏启动时调用
|
||||
* - 内部调用 window["wx"].uma.init 或其他平台的 UMA 初始化
|
||||
*/
|
||||
init(cb?: Function): void {
|
||||
try {
|
||||
if (typeof window !== "undefined" && window["wx"] && window["wx"].uma) {
|
||||
window["wx"].uma.init({
|
||||
appKey: "YOUR_UMA_APP_KEY", // TODO: 替换成实际 key
|
||||
useOpenid: true,
|
||||
autoGetOpenid: true,
|
||||
debug: false,
|
||||
uploadUserInfo: true,
|
||||
});
|
||||
this.enabled = true;
|
||||
logger.info("UmaAnalyticsSDK 初始化完成 ");
|
||||
} else {
|
||||
this.enabled = false;
|
||||
logger.warn("UmaAnalyticsSDK 初始化失败 (未检测到 wx.uma)");
|
||||
}
|
||||
} catch (e) {
|
||||
this.enabled = false;
|
||||
logger.error("UmaAnalyticsSDK 初始化异常:", e);
|
||||
}
|
||||
|
||||
cb && cb();
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否启用 UMA 统计
|
||||
*
|
||||
* @returns true 启用,false 关闭
|
||||
*/
|
||||
isAnalyticsEnabled(): boolean {
|
||||
return this.enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* 上报事件
|
||||
* @param eventName 事件名称
|
||||
* @param value 事件参数(可选)
|
||||
*
|
||||
* - 例如:trackEvent("_um.talk.round", { round: 5 })
|
||||
*/
|
||||
trackEvent(eventName: string, value?: any): void {
|
||||
if (!this.enabled) {
|
||||
logger.debug("UmaAnalyticsSDK 未启用,跳过事件上报:", eventName, value);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
window["wx"].uma.trackEvent(eventName, value || {});
|
||||
logger.info("UmaAnalyticsSDK 上报事件:", eventName, value);
|
||||
} catch (e) {
|
||||
logger.error("UmaAnalyticsSDK 上报事件失败:", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 销毁 SDK
|
||||
*
|
||||
* - 用于释放资源或清理缓存
|
||||
* - 通常在游戏退出或切换环境时调用
|
||||
*/
|
||||
destroy(): void {
|
||||
logger.info("UmaAnalyticsSDK 已销毁");
|
||||
this.enabled = false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "7ab6fef3-1927-4956-9536-f2cdd7fe2842",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
Reference in New Issue
Block a user