AdManager.ts 3.02 KB
import TTAdSdk from "./TTAdSdk";
import { AppSdkData } from "./sdkData/AppSdkData";
import TeaSdk, { DotKey } from "./TeaSdk";
import ObjectInstance from "../uitl/ObjectInstance";

export default class AdManager {
    private lastVideoTime: number;

    init() {
        this.preloadRewardAd();
        this.preloadBanner();
        this.preloadFullAd();
    }

    preloadBanner() {
        TTAdSdk.I.loadBannerExpressAd(1);
    }

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

    preloadFullAd() {
        TTAdSdk.I.loadFullScreenVideoAd(1);
    }
    preloadNativeAdYLH() {
        TTAdSdk.I.loadNativeAdYLH(1, 1, 600, 300, 1);
    }

    preloadInterAd() {
        TTAdSdk.I.showInteractionExpressAd(1);
    }

    preloadNativeAd() {
        TTAdSdk.I.loadFullScreenVideoAd(1);
    }

    closeAdverDialog() {
        if (!Laya.Browser.onAndroid) {
            return;
        }
        TTAdSdk.I.closeAdverDialog()
    }
    closeAdBanner() {
        TTAdSdk.I.closeAdBanner()
    }

    async showRewardAd(point: DotKey | string) {
        try {
            let ret = await TTAdSdk.I.showRewardVideoAd(0, point);
            // this.lastVideoTime = Laya.timer.currTimer;
            // this.preloadRewardAd();
            return Promise.resolve(ret);
        } catch (e) {
            this.preloadRewardAd();
            return Promise.reject(e);
            // // 加载激励视频失败调用全屏视频并返回成功!
            // this.showFullAd().then(res => {
            //     return Promise.resolve(res);
            // }).catch(err => {
            //     this.preloadRewardAd();
            //     return Promise.reject(e);
            // })

        }
    }


    async showFullAd() {
        try {
            let ret = await TTAdSdk.I.loadFullScreenVideoAd();

            TeaSdk.I.dot(DotKey.fullScreen, { from: 'show' });
            this.preloadFullAd();
            return Promise.resolve(ret);
        } catch (e) {
            this.preloadFullAd();
            return Promise.reject(e);
        }
    }

    async showInterAd() {
        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();
    }

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

    // 优量汇信息流广告
    showNativeAdYLH(x, y, w, h, preload = 0) {
        return TTAdSdk.I.loadNativeAdYLH(x, y, w, h, preload);
    }

    openLoadNativeAdEvent() {
        TTAdSdk.I.openLoadNativeAdEvent()
    }


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