SDKManager.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { sys } from "cc";
  2. import { WeChatSDKManager } from "./WeChatSDKManager";
  3. import { DouYinSDKManager } from "./DouYinSDKManager";
  4. import { KuaiShouSDKManager } from "./KuaiShouSDKManager";
  5. export class SDKManager {
  6. private static _instance: SDKManager;
  7. public static getInstance(): SDKManager {
  8. if (!SDKManager._instance) {
  9. if ((sys.platform == sys.Platform.WECHAT_GAME) && window.ks) {
  10. SDKManager._instance = new SDKManager('kuaihsou');
  11. } else if (sys.platform == sys.Platform.WECHAT_GAME) {
  12. SDKManager._instance = new SDKManager('wechat');
  13. } else if (sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
  14. SDKManager._instance = new SDKManager('douyin');
  15. } else {
  16. SDKManager._instance = new SDKManager('wechat');
  17. }
  18. }
  19. return SDKManager._instance;
  20. }
  21. private currentSDKManager: WeChatSDKManager | DouYinSDKManager | KuaiShouSDKManager;
  22. constructor(platform: string) {
  23. switch (platform) {
  24. case 'wechat':
  25. this.currentSDKManager = new WeChatSDKManager();
  26. break;
  27. case 'douyin':
  28. this.currentSDKManager = new DouYinSDKManager();
  29. break;
  30. case 'kuaihsou':
  31. this.currentSDKManager = new KuaiShouSDKManager();
  32. break;
  33. default:
  34. console.log('Unsupported platform');
  35. }
  36. }
  37. public login(callBack: Function) {
  38. if (this.currentSDKManager) {
  39. this.currentSDKManager.login(callBack);
  40. }
  41. }
  42. public showShareMenu() {
  43. if (this.currentSDKManager) {
  44. this.currentSDKManager.showShareMenu();
  45. }
  46. }
  47. }