| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- // ADHandler.ts
- import { CocosHandlerType, CocosHandler } from './CocosHandler';
- import { AD_TYPE } from '../config/GameDefine';
- import { oops } from 'db://oops-framework/core/Oops';
- import { UIID } from '../config/GameUIConfig';
- import { smc } from '../SingletonModuleComp';
- import { ServerHandler } from './ServerHandler';
- import { LoginHandler } from './LoginHandler';
- export class ADHandler {
- private static _inst: ADHandler;
- public static get inst(): ADHandler {
- if (!this._inst) {
- this._inst = new ADHandler();
- }
- return this._inst;
- }
- showAd = async (id: string) => {
- const { method, param } = this.buildAdParam(id);
- const data: CocosHandlerType = {
- method,
- param: JSON.stringify(param)
- };
- return await CocosHandler.inst.sendMessageToAndroid(data, `广告 ${id}`);
- };
- private buildAdParam(id: string): { method: string, param: any } {
- const param: any = {
- funcId: id,
- callback: {
- onLoaded: '',
- onShow: '',
- onLoadFailed: '',
- onShowFailed: '',
- onClose: ''
- }
- };
- let method = '';
- switch (id) {
- case AD_TYPE.Start:
- method = 'ad.splash';
- param.callback.onLoadFailed = 'ADHandler.inst.adSplashLoadFailed';
- param.callback.onClose = 'ADHandler.inst.adSplashClose';
- break;
- case AD_TYPE.Jion_Main:
- case AD_TYPE.Double_Close:
- case AD_TYPE.Rebates:
- case AD_TYPE.Double_Speed_Close:
- method = 'ad.interstitial';
- param.callback.onShowFailed = 'ADHandler.inst.adInterstitialShowFailed';
- param.callback.onClose = 'ADHandler.inst.adInterstitialClose';
- break;
- default:
- method = 'ad.reward';
- param.callback.onShow = 'ADHandler.inst.adRewardShow';
- param.callback.onClose = 'ADHandler.inst.adRewardClose';
- param.callback.onShowFailed = 'ADHandler.inst.adRewardShowFailed';
- }
- return { method, param };
- }
- adSplashClose = async () => {
- if (oops.gui.has(UIID.KindTips)) oops.gui.remove(UIID.KindTips);
- if (oops.gui.has(UIID.Retention)) oops.gui.remove(UIID.Retention);
- const result = await LoginHandler.inst.savePrivacyStatus(true);
- if (result?.code === 0) {
- ServerHandler.inst.getAccountInfo();
- }
- };
- adSplashLoadFailed = () => {
- console.log('[广告] 启屏广告加载失败');
- ServerHandler.inst.getAccountInfo();
- };
- adInterstitialClose = (type: boolean) => {
- console.log('[广告] 插屏广告关闭', type);
- };
- adInterstitialShowFailed = () => {
- console.log('[广告] 插屏广告显示失败');
- };
- adRewardClose = (state: boolean) => {
- console.log("[广告] 激励视频关闭")
- smc.game.GameModel.isDone = state;
- };
- adRewardShow = (str: string) => {
- const data = JSON.parse(str);
- ServerHandler.inst.getSign(data.price);
- };
- adRewardShowFailed = (str: string) => {
- console.log('[广告] 激励视频展示失败', str);
- };
- }
- window["ADHandler"] = ADHandler;
|