import { LogLevel } from "../wxsdk/service/LogService"; import WXSDK from "../wxsdk/WXSDK"; export class Analytics { private static _instance: Analytics; private systemType: number static get I(): Analytics { return this._instance || (this._instance = new Analytics); } private static IGNORE_LOGGER = false; constructor() { } private get isSupported() { return typeof WXSDK === 'object'; } // 游戏打点 dot(dot_type: string, data: any = {}) { if (typeof my == 'undefined') return // wx.aldSendEvent(dot_type, data); //阿拉丁打点,没需求注释即可 return WXSDK.stat.dot(dot_type, data); } // loading完成 loadingFinish() { return WXSDK.stat.loadingFinish(); } // 关键行为 behaviors() { return WXSDK.stat.behaviors() } // 导出打点 jumps(id, type) { return WXSDK.stat.jumps(id, type) } /** * 关卡开始 * @param stageid 关卡ID, 必须1.1、12.2 “.”前面代表模式 后面代表关卡 * @param stagename 关卡名称,格式:"xx模式-第x关" * @param pattern 模式名称,格式:"xx模式" */ levelStart(stageid, stagename?, pattern?) { if (!stagename) stagename = `第${stageid}关` if (!pattern) pattern = '普通模式' return WXSDK.stat.levelStart(stageid, stagename, pattern) } /** * 关卡进行中 * @param stageid 关卡ID, 必须1.1、12.2 “.”前面代表模式 后面代表关卡 * @param stagename 关卡名称,格式:"xx模式-第x关" * @param pattern 模式名称,格式:"xx模式" * @param event 事件 tools:使用道具 award:奖励 * @param params_id 道具ID * @param params_name 道具名称 * @param params_count 道具数量 * @param params_desc 道具描述 */ levelRunning(stageid, stagename, pattern, event, params_id, params_name, params_count, params_desc?) { if (!stagename) stagename = `第${stageid}关` if (!pattern) pattern = '普通模式' return WXSDK.stat.levelRunning(stageid, stagename, pattern, event, params_id, params_name, params_count, params_desc) } /** * 关卡结束 * @param stageid 关卡ID, 必须1.1、12.2 “.”前面代表模式 后面代表关卡 * @param stagename 关卡名称,格式:"xx模式-第x关" * @param pattern 模式名称,格式:"xx模式" * @param event complete:成功 fail:失败 * @param times 时间 * @param perc 失败时的完成进度 (浮点数) */ async levelEnd(stageid, stagename, pattern, event, times, perc?, valence = 0) { if (!stagename) stagename = `第${stageid}关` if (!pattern) pattern = '普通模式' return WXSDK.stat.levelEnd(stageid, stagename, pattern, event, times, perc, valence) } /** * 视频信息 打点 * @param adstatus 1.请求 3.展示 5.完成 6.中断 7.失败 * @param times 视频关闭时间 (完成和中断)需要传 */ videoAdStat(adstatus: number, times?) { WXSDK.stat.adStat('video', '9999', 2, adstatus, times) } /** * 客户端日志 * @param content 内容 * @param level 日志等级 * @returns */ clientLog(content, level = LogLevel.debug) { return WXSDK.stat.clientLog(content, level) } /** * 资源上报 * @param id 1体力 2经验 3钻石 * @param typ 1增加 2减少 * @param nums 增加或减少的数量 * @param gsne 消耗场景 */ consume(id: number, typ: number, nums: number, gsne: string) { return WXSDK.stat.consume(id, typ, nums, gsne) } /** * 游戏行为数据提交(玩一玩) * @param action_code 用户在游戏中的行动编码 * @param action_finish_channel 用户完成行动的渠道 * @param action_finish_date 用户完成时间 * @param status 上报的结果 0成功 其他失败 */ AlipayGameCenter(action_code: string, action_finish_channel: string, action_finish_date: string, status: string) { WXSDK.stat.AlipayGameCenter(action_code, action_finish_channel, action_finish_date, status); } /** * 支付行为上报 * @param orderid 订单号,游戏方订单号 * @param goodid 游戏方商品ID * @param goodname 游戏方商品名字 * @param money 支付金额,单位分 * @param paytype 支付方式,1客服消息支付 3米大师支付 4小程序支付 6二维码支付 7字节钱包 8QQ钱包 9华为钱包 10支付宝小游戏支付 11支付宝小程序(跳转到另外一个小程序支付)13美团支付 * @param paystatus 1支付成功 2支付失败 * @param ordertype 支付平台,android,ios,windows,mac */ orderLogReport(orderid: string, goodid: string, goodname: string, money: number, paytype: number, paystatus: number, ordertype: string) { WXSDK.stat.orderLogReport(orderid, goodid, goodname, money, paytype, paystatus, ordertype) } } export enum EventKey { toggleScene = 'toggleScene', recoverGame = 'recoverGame', replayGame = 'replayGame', settingClose = 'settingClose', updateLvUI = 'updateLvUI', }