123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- import { RDLeaderboardEntity } from "./RDLeaderboardEntity";
- import { RDPlatformType } from "./RDPlatformType";
- import { RDPlatform } from "./RDPlatform";
- import { RDWeiXinMiniPlatform } from "./platform/RDWeiXinMiniPlatform";
- import { RDPCPlatform } from "./platform/RDPCPlatform";
- import { RDTTMiniPlatform } from "./platform/RDTTMiniPlatform";
- import { RDVIVOMiniPlatform } from "./platform/RDVIVOMiniPlatform";
- import { RDOPPOMiniPlatform } from "./platform/RDOppoMiniPlatform";
- export class RDPlatformManager {
- private _type: RDPlatformType = RDPlatformType.None;
- private rdPlatform: RDPlatform = null;
- private static _instance: RDPlatformManager = new RDPlatformManager();
- public static getInstance(): RDPlatformManager {
- return this._instance;
- }
- /**
- * 游戏启动时,需要初始化平台类型
- * @param type
- */
- public init(type: RDPlatformType = RDPlatformType.None): void {
- //当前运行平台为
- this._type = type;
- console.log("当前运行平台为", this._type);
- switch (this._type) {
- case RDPlatformType.None:
- this.rdPlatform = new RDPCPlatform();
- break;
- case RDPlatformType.WeixinMinGame:
- this.rdPlatform = new RDWeiXinMiniPlatform();
- break;
- case RDPlatformType.TTMinGame:
- this.rdPlatform = new RDTTMiniPlatform();
- break;
- case RDPlatformType.VIVOGame:
- this.rdPlatform = new RDVIVOMiniPlatform();
- break;
- case RDPlatformType.OPPOGame:
- this.rdPlatform = new RDOPPOMiniPlatform();
- break;
- case RDPlatformType.Facebook:
- break;
- case RDPlatformType.Weixin:
- break;
- case RDPlatformType.MobileNative:
- break;
- case RDPlatformType.Web:
- break;
- case RDPlatformType.Ios:
- break;
- }
- if (this.sdk) this.sdk.init()
- }
- /**
- * 调用底层平台SDK方法
- * @param type
- * @param content
- */
- public sendData(type: number, content: any): void {
- this.sdk.sendData(type, content);
- }
- /**
- * 供底层平台SDK调用
- * @param type
- * @param content
- */
- public receiveData(type: number, content: string): void {
- this.sdk.receiveData(type, content);
- }
- /**
- * 加载数据
- * @param keys
- * @param completeCallback
- * @param errorCallback
- */
- public loadStorageData(keys: string[], completeCallback: (resource: any) => void, errorCallback: (error: Error) => void): void {
- if(this.sdk)
- {
- this.sdk.loadStorageData(keys, completeCallback, errorCallback);
- }
- }
- /**
- * 数据持久化
- * @param data
- * @param completeCallback
- */
- public flushStorageData(data: any, completeCallback: (error: Error) => void): void {
- this.sdk.flushStorageData(data, completeCallback);
- }
- /**
- * 提交分数
- * @param content
- * @param completeCallback
- */
- public submitScore(content: any, completeCallback: (error: Error) => void): void {
- this.sdk.submitScore(content, completeCallback);
- }
- /**
- * 邀请好友
- * @param completeCallback
- */
- public invite(completeCallback: (error: Error) => void): void {
- this.sdk.invite(completeCallback);
- }
- /**
- * 挑战好友
- * @param completeCallback
- */
- public challenge(completeCallback: (error: Error) => void): void {
- this.sdk.challenge(completeCallback);
- }
- /**
- * 获取排行榜数据
- * @param completeCallback
- * @param errorCallback
- */
- public getLeaderboard(completeCallback: (resource: RDLeaderboardEntity[]) => void, errorCallback: (error: Error) => void): void {
- this.sdk.getLeaderboard(completeCallback, errorCallback);
- }
- /**
- * 是否显示录制视频
- */
- public isShowVideo():boolean{
- return this.sdk.canShowVideo();
- }
- get sdk() {
- return this.rdPlatform;
- }
- }
|