AdManager.ts 2.04 KB
import TTAdSdk from "./TTAdSdk";
import ObjectInstance from "../uitl/ObjectInstance";

export default class AdManager {
    private lastVideoTime: number;

    init() {
        this.preloadRewardAd();
    }

    private preloadRewardAd() {
        TTAdSdk.I.showRewardVideoAd(1);
    }

    async showRewardAd() {
        try {
            let ret = await TTAdSdk.I.showRewardVideoAd();
            this.lastVideoTime = Laya.timer.currTimer;
            this.preloadRewardAd();
            return Promise.resolve(ret);
        } catch (e) {
            this.preloadRewardAd();
            return Promise.reject(e);
        }
    }

    private preloadFullAd() {
        TTAdSdk.I.loadFullScreenVideoAd( 1);
    }

    private preloadInterAd() {
        TTAdSdk.I.loadFullScreenVideoAd(1);
    }

    async showFullAd() {
        // console.warn('full');
        // return Promise.resolve();
        try {
            let ret = await TTAdSdk.I.loadFullScreenVideoAd();
            this.preloadFullAd();
            return Promise.resolve(ret);
        } catch (e) {
            this.preloadFullAd();
            return Promise.reject(e);
        }
    }

    async showInterAd() {
        // console.warn('full');
        // return Promise.resolve();
        try {
            let ret = await TTAdSdk.I.showInteractionExpressAd();
            this.preloadInterAd();
            return Promise.resolve(ret);
        } catch (e) {
            this.preloadInterAd();
            return Promise.reject(e);
        }
    }


    checkVideoInCd() {
        return this.lastVideoTime && (Laya.timer.currTimer - this.lastVideoTime <= 30000);
    }

    showBanner() {
        TTAdSdk.I.loadBannerExpressAd();
    }

    hideBanner() {
        TTAdSdk.I.hideAd();
    }

    showNativeAd(x, y, w, h) {
        TTAdSdk.I.loadNativeExpressAd( x, y, w, h);
    }

    hideNativeAd() {
        TTAdSdk.I.hideAd();
    }

    

    static get I(): AdManager {
        return ObjectInstance.get(AdManager);
    }
}