import { sys } from "cc"; import { WeChatSDKManager } from "./WeChatSDKManager"; import { DouYinSDKManager } from "./DouYinSDKManager"; import { KuaiShouSDKManager } from "./KuaiShouSDKManager"; export class SDKManager { private static _instance: SDKManager; public static getInstance(): SDKManager { if (!SDKManager._instance) { if ((sys.platform == sys.Platform.WECHAT_GAME) && window.ks) { SDKManager._instance = new SDKManager('kuaihsou'); } else if (sys.platform == sys.Platform.WECHAT_GAME) { SDKManager._instance = new SDKManager('wechat'); } else if (sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) { SDKManager._instance = new SDKManager('douyin'); } else { SDKManager._instance = new SDKManager('wechat'); } } return SDKManager._instance; } private currentSDKManager: WeChatSDKManager | DouYinSDKManager | KuaiShouSDKManager; constructor(platform: string) { switch (platform) { case 'wechat': this.currentSDKManager = new WeChatSDKManager(); break; case 'douyin': this.currentSDKManager = new DouYinSDKManager(); break; case 'kuaihsou': this.currentSDKManager = new KuaiShouSDKManager(); break; default: console.log('Unsupported platform'); } } public login(callBack: Function) { if (this.currentSDKManager) { this.currentSDKManager.login(callBack); } } public showShareMenu() { if (this.currentSDKManager) { this.currentSDKManager.showShareMenu(); } } }