123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- // Import platform-specific interstitial SDKs
- import ATiOSInterstitialJS from "./iOS/ATiOSInterstitialJS";
- import ATAndroidInterstitialJS from "./Android/ATAndroidInterstitialJS";
- // Define platform bridge initialization
- const initPlatformBridge = (): any => {
- if (cc.sys.os === cc.sys.OS_IOS) {
- return ATiOSInterstitialJS;
- } else if (cc.sys.os === cc.sys.OS_ANDROID) {
- return ATAndroidInterstitialJS;
- }
- };
- // Initialize platform bridge
- const platformBridge = initPlatformBridge();
- // Define listener interface for ad callbacks
- interface IAdListener {
- onInterstitialAdLoaded?: (placementId: string) => void;
- onInterstitialAdLoadFail?: (placementId: string, errorInfo: any) => void;
- onInterstitialAdShow?: (placementId: string, callbackInfo: any) => void;
- onInterstitialAdStartPlayingVideo?: (placementId: string, callbackInfo: any) => void;
- onInterstitialAdEndPlayingVideo?: (placementId: string, callbackInfo: any) => void;
- onInterstitialAdFailedToPlayVideo?: (placementId: string, errorInfo: any) => void;
- onInterstitialAdFailedToShow?: (placementId: string) => void;
- onInterstitialAdClose?: (placementId: string, callbackInfo: any) => void;
- onInterstitialAdClick?: (placementId: string, callbackInfo: any) => void;
- }
- // Define interstitial SDK class
- const ATInterstitialSDK = {
- UseRewardedVideoAsInterstitial: "UseRewardedVideoAsInterstitial",
- ATInterstitialListener: {
- developerCallback: null as IAdListener | null,
- onInterstitialAdLoaded(placementId: string) {
- this.developerCallback?.onInterstitialAdLoaded?.(placementId);
- },
- onInterstitialAdLoadFail(placementId: string, errorInfo: any) {
- this.developerCallback?.onInterstitialAdLoadFail?.(placementId, errorInfo);
- },
- onInterstitialAdShow(placementId: string, callbackInfo: any) {
- this.developerCallback?.onInterstitialAdShow?.(placementId, callbackInfo);
- },
- onInterstitialAdStartPlayingVideo(placementId: string, callbackInfo: any) {
- this.developerCallback?.onInterstitialAdStartPlayingVideo?.(placementId, callbackInfo);
- },
- onInterstitialAdEndPlayingVideo(placementId: string, callbackInfo: any) {
- this.developerCallback?.onInterstitialAdEndPlayingVideo?.(placementId, callbackInfo);
- },
- onInterstitialAdFailedToPlayVideo(placementId: string, errorInfo: any) {
- this.developerCallback?.onInterstitialAdFailedToPlayVideo?.(placementId, errorInfo);
- },
- onInterstitialAdFailedToShow(placementId: string) {
- this.developerCallback?.onInterstitialAdFailedToShow?.(placementId);
- },
- onInterstitialAdClose(placementId: string, callbackInfo: any) {
- this.developerCallback?.onInterstitialAdClose?.(placementId, callbackInfo);
- },
- onInterstitialAdClick(placementId: string, callbackInfo: any) {
- this.developerCallback?.onInterstitialAdClick?.(placementId, callbackInfo);
- }
- },
-
- loadInterstitial(placementId: string, settings: Record<string, any> = {}) {
- if (platformBridge) {
- platformBridge.loadInterstitial(placementId, JSON.stringify(settings));
- } else {
- cc.log("You must run on Android or iOS.");
- }
- },
- setAdListener(listener: IAdListener) {
- const eventJSON: Record<string, string> = {};
- eventJSON[LoadedCallbackKey] = "ATInterstitialJSSDK.ATInterstitialListener.onInterstitialAdLoaded";
- eventJSON[LoadFailCallbackKey] = "ATInterstitialJSSDK.ATInterstitialListener.onInterstitialAdLoadFail";
- eventJSON[PlayStartCallbackKey] = "ATInterstitialJSSDK.ATInterstitialListener.onInterstitialAdStartPlayingVideo";
- eventJSON[PlayEndCallbackKey] = "ATInterstitialJSSDK.ATInterstitialListener.onInterstitialAdEndPlayingVideo";
- eventJSON[PlayFailCallbackKey] = "ATInterstitialJSSDK.ATInterstitialListener.onInterstitialAdFailedToPlayVideo";
- eventJSON[CloseCallbackKey] = "ATInterstitialJSSDK.ATInterstitialListener.onInterstitialAdClose";
- eventJSON[ClickCallbackKey] = "ATInterstitialJSSDK.ATInterstitialListener.onInterstitialAdClick";
- eventJSON[ShowCallbackKey] = "ATInterstitialJSSDK.ATInterstitialListener.onInterstitialAdShow";
- eventJSON[ShowFailCallbackKey] = "ATInterstitialJSSDK.ATInterstitialListener.onInterstitialAdFailedToShow";
- if (platformBridge) {
- platformBridge.setAdListener(JSON.stringify(eventJSON));
- } else {
- cc.log("You must run on Android or iOS.");
- }
- this.ATInterstitialListener.developerCallback = listener;
- },
- hasAdReady(placementId: string): boolean {
- if (platformBridge) {
- return platformBridge.hasAdReady(placementId);
- } else {
- cc.log("You must run on Android or iOS.");
- }
- return false;
- },
- checkAdStatus(placementId: string): string {
- if (platformBridge) {
- return platformBridge.checkAdStatus(placementId);
- } else {
- cc.log("You must run on Android or iOS.");
- }
- return "";
- },
- showAd(placementId: string) {
- if (platformBridge) {
- platformBridge.showAd(placementId);
- } else {
- cc.log("You must run on Android or iOS.");
- }
- },
- showAdInScenario(placementId: string, scenario: string = "") {
- if (platformBridge) {
- platformBridge.showAdInScenario(placementId, scenario);
- } else {
- cc.log("You must run on Android or iOS.");
- }
- }
- };
- // Define callback keys
- const LoadedCallbackKey = "InterstitialLoaded";
- const LoadFailCallbackKey = "InterstitialLoadFail";
- const PlayStartCallbackKey = "InterstitialPlayStart";
- const PlayEndCallbackKey = "InterstitialPlayEnd";
- const PlayFailCallbackKey = "InterstitialPlayFail";
- const CloseCallbackKey = "InterstitialClose";
- const ClickCallbackKey = "InterstitialClick";
- const ShowCallbackKey = "InterstitialAdShow";
- const ShowFailCallbackKey = "InterstitialAdShowFail";
- // Export the SDK to the global window object
- (window as any).ATInterstitialJSSDK = ATInterstitialSDK;
|