PlatformService.ts 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import { sys } from "cc";
  2. import H5Api from "./h5Api";
  3. import HuaWeiApi from "./huaWeiApi";
  4. import { MiniGameApiBase } from "./MiniGameApiBase";
  5. import OppoApi from "./oppoApi";
  6. import TtApi from "./ttApi";
  7. import VivoApi from "./vivoApi";
  8. import WxApi from "./wxApi";
  9. export default class PlatformService {
  10. protected _serviceName: string = "平台服务";
  11. private static m_PlatformApiClass: typeof MiniGameApiBase | any = null;
  12. static platformName: string = "ok";
  13. private m_PlatformApi: MiniGameApiBase = undefined;
  14. get platformApi() { return this.m_PlatformApi; }
  15. private static _instance: PlatformService;
  16. static getInstance(): PlatformService {
  17. if (!this._instance) {
  18. this._instance = new PlatformService();
  19. }
  20. return this._instance;
  21. }
  22. constructor() {
  23. if (PlatformService._instance) {
  24. return PlatformService._instance;
  25. }
  26. this._Initialize();
  27. }
  28. _Initialize(): void {
  29. console.error("正在初始化api-------------------------------")
  30. this.platformCheck();
  31. this.m_PlatformApi = <MiniGameApiBase>new PlatformService.m_PlatformApiClass();
  32. console.group("加载平台api");
  33. //验证授权
  34. this.m_PlatformApi.validAppId();
  35. //预先加载
  36. this.m_PlatformApi.ready();
  37. console.groupEnd();
  38. }
  39. platformCheck() {
  40. //平台
  41. switch (sys.platform) {
  42. case sys.Platform.WECHAT_MINI_PROGRAM:
  43. case sys.Platform.WECHAT_GAME:
  44. PlatformService.m_PlatformApiClass = WxApi;
  45. break;
  46. case sys.Platform.BYTEDANCE_MINI_GAME:
  47. PlatformService.m_PlatformApiClass = TtApi;
  48. break;
  49. case sys.Platform.VIVO_MINI_GAME:
  50. PlatformService.m_PlatformApiClass = VivoApi;
  51. break;
  52. case sys.Platform.OPPO_MINI_GAME:
  53. PlatformService.m_PlatformApiClass = OppoApi;
  54. break;
  55. case sys.Platform.HUAWEI_QUICK_GAME:
  56. PlatformService.m_PlatformApiClass = HuaWeiApi;
  57. break;
  58. default: {
  59. PlatformService.m_PlatformApiClass = H5Api;
  60. break;
  61. }
  62. }
  63. }
  64. static getPlatformApiClass(): typeof MiniGameApiBase {
  65. return PlatformService.m_PlatformApiClass;
  66. }
  67. }