import { sys ,Node} from "cc"; import BaseSdk from "./BaseSdk"; import SdkInterface, { MgrScope } from "./SdkInterface"; import WxSdk from "./WxSdk"; import TTSdk from "./TTSdk"; import Instance from "../../core_tgx/util/Instance"; export enum SDK_TYPE { PC = 0, //PC WX_DEBUG, //微信测试 TT,//抖音 } export class SdkMgr { public static getInstance(param?): SdkMgr{ return Instance.get(SdkMgr,param); } private _sdkObj: SdkInterface; public constructor(sdkType?:SDK_TYPE ) { if(!sdkType &&sdkType != 0){ if(sys.platform===sys.Platform.WECHAT_GAME){ sdkType=SDK_TYPE.WX_DEBUG; }else if(sys.platform===sys.Platform.BYTEDANCE_MINI_GAME){ sdkType=SDK_TYPE.TT; }else{ sdkType=SDK_TYPE.PC; } } switch (sdkType) { case SDK_TYPE.WX_DEBUG: //微信debug this._sdkObj = new WxSdk(); break; case SDK_TYPE.TT: //微信debug this._sdkObj = new TTSdk(); break; default: //pc this._sdkObj = new BaseSdk(); break; } } get sdkObj():SdkInterface{ return this._sdkObj } /** * 初始化 * @param callback 初始化成功后回调 * @param target 监听对象 */ // public init(callback: Function=null, target: Object=null): void { // console.log("SdkMgr init"); // this.sdkObj.init(callback, target); // } /** * 登录 * @param callback 登录成功后回调 * @param target 监听对象 */ // public login(callback: Function, target: Object): void { // console.log("SdkMgr login"); // this.sdkObj.login(callback, target); // } /** * 登出 */ // public logout(): void { // console.log("SdkMgr logout"); // this.sdkObj.logout(); // } /** * 退出 */ // public exit(): void { // console.log("SdkMgr exit"); // this.sdkObj.exit(); // } /** * 切换账号 */ // public switchLogin(): void { // console.log("SdkMgr switchLogin"); // this.sdkObj.switchLogin(); // } /** * 数据上报 * @param param 参数 */ public report(...param: any[]): void { console.log("SdkMgr report"); this.sdkObj.report(param); } /** * 数据上报 * @param param 参数 */ public pay(...param: any[]): void { console.log("SdkMgr pay"); this.sdkObj.pay(param); } public setOpenScore(score:number):void{ this.sdkObj.setOpenScore(score); } public getOpenRank():void{ this.sdkObj.getOpenRank(); } /**激励广告*/ public playRewardAd(callback: Function, target?: any,scene?:any): void { // 看广告是不录屏 this.sdkObj.recorderPause(); this.sdkObj.showLoading() let _callback = (success)=>{ this.sdkObj.recorderResume(); callback.call(target,success); // 如果看广告成功需要发送消息 // if(success){ // this.sendAnalytics({event_type:AnalyticsType.lt_roi}) // this.sendAnalytics({event_type:AnalyticsType.micro_game_ltv}) // } } chsdk.playRewardAd(scene).then(success => { if (success) { _callback(success) } this.sdkObj.hideLoading() }) } /** * 主动拉起转发(小程序) */ shareAppMessage(title: string = "", imageUrlId: string = "", imageUrl: string = "", message:string=""): void { // this.sdkObj.shareAppMessage(title, imageUrlId, imageUrl, query, shareCallback); chsdk.shareAppMessage(title, imageUrlId, imageUrl, message) } /**开始录屏*/ recorderStart(duration:number=30):void{ try { this.sdkObj.recorderStart(duration); } catch (error) { } } /**结束录屏*/ recorderStop():void{ this.sdkObj.recorderStop(); } /**分享录屏*/ public shareRecord(title: string="" ,desc:string="",path:string="",topics:string[]=[]):void{ this.sdkObj.shareRecord(title,desc,path,topics); } /**进入侧边栏 */ public goToSidebar():void{ this.sdkObj.goToSidebar(); } /**是否有侧边栏功能 */ public checkHasSidebar():boolean{ return this.sdkObj.checkHasSidebar(); } /**是否从侧边栏进入*/ public checkFromSidebar():boolean{ return this.sdkObj.checkFromSidebar(); } vibrateShort(param: any) { return this.sdkObj.vibrateShort(param); } /**继续录屏 */ recorderResume(){ return this.sdkObj.recorderResume(); } /**暂停录屏 */ recorderPause(){ return this.sdkObj.recorderPause(); } /**录屏状态 */ get recordState(){ return this.sdkObj.recordState } // 授权 authorize(str?,cb?){ str = this._sdkObj.getScope(str)||str return this.sdkObj.authorize(str,cb) } getUserInfo(cb, node?: Node,btnCb?){ this.sdkObj.getUserInfo(cb, node,btnCb) } // 菜单 getMenuButtonBoundingClientRect(){ return this.sdkObj.getMenuButtonBoundingClientRect() } // 发消息 posMessge(messge?){ return this.sdkObj.posMessge(messge) } get scope() { return MgrScope } showRankList(param){ //moba游戏自动生成段位榜 return this.sdkObj.showRankList(param) } setImRankData(param){ return this.sdkObj.setImRankData(param) } // sendAnalytics(param:{event_type:AnalyticsType,outer_event_id?:number}){ // if(sys.platform!=sys.Platform.BYTEDANCE_MINI_GAME) return; // return (this.sdkObj as TTSdk).sendAnalytics(param) // } awemeUserProfile(callback: Function){ if(sys.platform!=sys.Platform.BYTEDANCE_MINI_GAME) return; return (this.sdkObj as TTSdk).awemeUserProfile(callback) } checkFollowAwemeState(callback: Function){ if(sys.platform!=sys.Platform.BYTEDANCE_MINI_GAME) return; return (this.sdkObj as TTSdk).checkFollowAwemeState(callback) } openSetting(res:any){ // if(sys.platform!=sys.Platform.BYTEDANCE_MINI_GAME) return; return this.sdkObj.openSetting(res) } getWindowInfo():{safeArea?:any}{ return this.sdkObj.getWindowInfo() } } export enum AnalyticsType{ active = "active", next_day_open = "next_day_open", lt_roi = "lt_roi", ug_roi ="ug_roi", in_app_retention_3d = "in_app_retention_3d", in_app_retention_2d ="in_app_retention_2d", micro_game_ltv ="micro_game_ltv", game_addiction ="game_addiction" }