import { ATKSConfig } from 'anythink_network_ks'; import { AT_LOCAL_EXTRA_KEY, ATAdError, ATAdInfo, ATRewardVideoAd } from 'anythink_sdk'; import { YTLog } from '../../../../../../Index'; import { ContextHelper } from '../../../utils/arkts/utils/ContextHelper'; import { windowHelper } from '../../../utils/arkts/utils/WindowHelper'; import { Singleton } from '../../../utils/ts/utils/SingleTon'; export class TkRewardAd extends Singleton { private declare rewardAd: ATRewardVideoAd private isLoading: boolean = false private declare placementId: string init(placementId: string) { this.placementId = placementId this.rewardAd = new ATRewardVideoAd(this.placementId); this.rewardAd.setAdListener({ onAdLoaded: (): void => { this.isLoading = false }, onAdShow: (adInfo: ATAdInfo): void => { // this.rewardAd.loadAd({ // context: ContextHelper.context, // localExtraMap: localExtraMap // }); }, onAdClick: (adInfo: ATAdInfo): void => { }, onAdClose: (adInfo: ATAdInfo): void => { this.rewardAd.loadAd({ context: ContextHelper.context, localExtraMap: localExtraMap }); }, onAdReward: (adInfo: ATAdInfo): void => { // this.rewardAd.loadAd({ // context: ContextHelper.context, // localExtraMap: localExtraMap // }); }, onAdLoadFailed: (adError: ATAdError): void => { YTLog.error(adError) // IBestToast.show("广告加载失败") this.isLoading = false }, onAdVideoPlayStart: (adInfo: ATAdInfo): void => { }, onAdVideoPlayEnd: (adInfo: ATAdInfo): void => { this.rewardAd.loadAd({ context: ContextHelper.context, localExtraMap: localExtraMap }); }, onAdVideoPlayFailed: (adError: ATAdError, adInfo?: ATAdInfo | undefined): void => { }, onAdOtherStatus: (adInfo?: ATAdInfo): void => { } }); const localExtraMap: Record = {}; //支持透传以下参数给广告平台:比如userId,详见AT_LOCAL_EXTRA_KEY localExtraMap[AT_LOCAL_EXTRA_KEY.USER_ID] = "your user id"; // 仅针对快手平台的广告配置 localExtraMap[ATKSConfig.VIDEO_AUTO_PLAY_TYPE_KEY] = 3; //设置不自动播放 this.rewardAd.loadAd({ context: ContextHelper.context, localExtraMap: localExtraMap }); this.isLoading = true return this.rewardAd } showRewardAd() { if (!this.isLoading) { if (this.rewardAd.isAdReady()) { this.rewardAd.showAd(ContextHelper.context, { windowStage: windowHelper.windowStage //在UIAbility的onWindowStageCreate(windowStage: window.WindowStage)中获取 }); } } } } export const tkRewardAd = TkRewardAd.getInstance();