UNPKG

cordova-plugin-adincube

Version:

AdinCube SDK for PhoneGap/Cordova

343 lines (333 loc) 11.3 kB
var bridge = cordova.require("cordova-plugin-adincube.AdinCubeBridge"); var fallbackInterstitialEventListener = null; var fallbackBannerEventListener = null; var fallbackRewardedEventListener = null; var fallbackUserConsentListener = null; var adinCubeEventListener = function(sEventToDispatch) { if(sEventToDispatch == null || sEventToDispatch == undefined) { return; } else if(sEventToDispatch == "OK") { return; } else { var eventToDispatch = sEventToDispatch.split(":"); var detail = null; if(eventToDispatch.length > 1) detail = eventToDispatch[1]; try { var customDelegateEvent = document.createEvent('CustomEvent'); customDelegateEvent.initCustomEvent(eventToDispatch[0], true, true, detail); document.dispatchEvent(customDelegateEvent); } catch(ex) { switch(eventToDispatch[0]) { case "AIC-Interstitial-onAdCached": if (fallbackInterstitialEventListener != null) fallbackInterstitialEventListener.onAdCached(); break; case "AIC-Interstitial-onAdShown": if (fallbackInterstitialEventListener != null) fallbackInterstitialEventListener.onAdShown(); break; case "AIC-Interstitial-onError": if (fallbackInterstitialEventListener != null) fallbackInterstitialEventListener.onError(detail); break; case "AIC-Interstitial-onAdClicked": if (fallbackInterstitialEventListener != null) fallbackInterstitialEventListener.onAdClicked(); break; case "AIC-Interstitial-onAdHidden": if (fallbackInterstitialEventListener != null) fallbackInterstitialEventListener.onAdHidden(); break; case "AIC-Banner-onError": if (fallbackBannerEventListener != null) fallbackBannerEventListener.onError(detail); break; case "AIC-Banner-onAdLoaded": if (fallbackBannerEventListener != null) fallbackBannerEventListener.onAdLoaded(); break; case "AIC-Banner-onAdShown": if (fallbackBannerEventListener != null) fallbackBannerEventListener.onAdShown(); break; case "AIC-Banner-onAdClicked": if (fallbackBannerEventListener != null) fallbackBannerEventListener.onAdClicked(); break; case "AIC-Rewarded-onAdCompleted": if (fallbackRewardedEventListener != null) fallbackRewardedEventListener.onAdCompleted(); break; case "AIC-Rewarded-onAdFetched": if (fallbackRewardedEventListener != null) fallbackRewardedEventListener.onAdFetched(); break; case "AIC-Rewarded-onFetchError": if (fallbackRewardedEventListener != null) fallbackRewardedEventListener.onFetchError(detail); break; case "AIC-Rewarded-onAdShown": if (fallbackRewardedEventListener != null) fallbackRewardedEventListener.onAdShown(); break; case "AIC-Rewarded-onError": if (fallbackRewardedEventListener != null) fallbackRewardedEventListener.onError(detail); break; case "AIC-Rewarded-onAdClicked": if (fallbackRewardedEventListener != null) fallbackRewardedEventListener.onAdClicked(); break; case "AIC-Rewarded-onAdHidden": if (fallbackRewardedEventListener != null) fallbackRewardedEventListener.onAdHidden(); break; case "AIC-UserConsent-onAskComplete": if (fallbackUserConsentEventListener != null) fallbackUserConsentEventListener.onAskComplete(detail); break; case "AIC-UserConsent-onAskError": if (fallbackUserConsentEventListener != null) fallbackUserConsentEventListener.onAskError(detail); break; case "AIC-UserConsent-onEditComplete": if (fallbackUserConsentEventListener != null) fallbackUserConsentEventListener.onEditComplete(detail); break; case "AIC-UserConsent-onEditError": if (fallbackUserConsentEventListener != null) fallbackUserConsentEventListener.onEditError(detail); break; } } } } var AdinCubeInterstitial = { init: function() { bridge.interstitial.init(adinCubeEventListener, null); }, isReady: function() { var trueCallback = null; var falseCallback = null; switch (arguments.length) { case 1: trueCallback = arguments[0]; break; case 2: trueCallback = arguments[0]; falseCallback = arguments[1]; break; default: return; } var successCallback = function(messageOrEventToDispatch) { if (messageOrEventToDispatch.indexOf("interstitial_isReady-") == 0) { var isReady = messageOrEventToDispatch.substr("interstitial_isReady-".length); if (isReady == "true") { trueCallback(); } else if (falseCallback != null) { falseCallback(); } } else { adinCubeEventListener(messageOrEventToDispatch); } }; bridge.interstitial.isReady(successCallback, null); }, show: function() { bridge.interstitial.show(adinCubeEventListener, null); }, setEventListener: function(eventListener) { fallbackInterstitialEventListener = eventListener; } }; var AdinCubeBanner = { setRespectSafeArea: function(safeArea, respectSafeArea) { bridge.banner.setRespectSafeArea(safeArea, respectSafeArea, adinCubeEventListener, null); }, load: function(size, position) { bridge.banner.load(size, position, adinCubeEventListener, null); }, show: function(size, position) { bridge.banner.show(size, position, adinCubeEventListener, null); }, hide: function() { bridge.banner.hide(adinCubeEventListener, null); }, getSize: function() { if (arguments.length != 1) { return; } var sizeCallback = arguments[0]; var successCallback = function(messageOrEventToDispatch) { if (messageOrEventToDispatch.indexOf("banner_getSize-") == 0) { var size = messageOrEventToDispatch.substr("banner_getSize-".length); var width = parseInt(size.substr(0, size.indexOf('x'))); var height = parseInt(size.substr(size.indexOf('x')+1, size.length)); sizeCallback(width, height); } else { adinCubeEventListener(messageOrEventToDispatch); } }; bridge.banner.getSize(successCallback, null); }, setVisible: function(visible) { bridge.banner.setVisible(visible, adinCubeEventListener, null); }, setEventListener: function(eventListener) { fallbackBannerEventListener = eventListener; }, Size: { BANNER_AUTO: "BANNER_AUTO", BANNER_320x50: "BANNER_320x50", BANNER_728x90: "BANNER_728x90" }, Position: { TOP: "TOP", TOP_RIGHT: "TOP_RIGHT", TOP_LEFT: "TOP_LEFT", BOTTOM: "BOTTOM", BOTTOM_RIGHT: "BOTTOM_RIGHT", BOTTOM_LEFT: "BOTTOM_LEFT" } }; var AdinCubeRewarded = { fetch: function() { bridge.rewarded.fetch(adinCubeEventListener, null); }, isReady: function() { var trueCallback = null; var falseCallback = null; switch (arguments.length) { case 1: trueCallback = arguments[0]; break; case 2: trueCallback = arguments[0]; falseCallback = arguments[1]; break; default: return; } var successCallback = function(messageOrEventToDispatch) { if (messageOrEventToDispatch.indexOf("rewarded_isReady-") == 0) { var isReady = messageOrEventToDispatch.substr("rewarded_isReady-".length); if (isReady == "true") { trueCallback(); } else if (falseCallback != null) { falseCallback(); } } else { adinCubeEventListener(messageOrEventToDispatch); } }; bridge.rewarded.isReady(successCallback, null); }, show: function() { bridge.rewarded.show(adinCubeEventListener, null); }, setEventListener: function(eventListener) { fallbackInterstitialEventListener = eventListener; } }; var AdinCubeUserConsent = { ask: function() { bridge.userConsent.ask(adinCubeEventListener, null); }, edit: function() { bridge.userConsent.edit(adinCubeEventListener, null); }, getIABConsentString: function() { var callback = arguments[0]; var successCallback = function(messageOrEventToDispatch) { if (messageOrEventToDispatch.indexOf("userconsent_getIABConsentString-") == 0) { var consentString = messageOrEventToDispatch.substr("userconsent_getIABConsentString-".length); callback(consentString); } else { adinCubeEventListener(messageOrEventToDispatch); } }; bridge.userConsent.getIABConsentString(successCallback, null); }, isAccepted: function(vendorSlug, callback) { var successCallback = function(messageOrEventToDispatch) { if (messageOrEventToDispatch.indexOf("userconsent_isAccepted-") == 0) { var isAccepted = messageOrEventToDispatch.substr("userconsent_isAccepted-".length); callback(isAccepted); } else { adinCubeEventListener(messageOrEventToDispatch); } }; bridge.userConsent.isAccepted(vendorSlug, successCallback, null); }, isPurposeAccepted: function(purpose, callback) { var successCallback = function(messageOrEventToDispatch) { if (messageOrEventToDispatch.indexOf("userconsent_isPurposeAccepted-") == 0) { var isPurposeAccepted = messageOrEventToDispatch.substr("userconsent_isPurposeAccepted-".length); callback(isPurposeAccepted); } else { adinCubeEventListener(messageOrEventToDispatch); } }; bridge.userConsent.isPurposeAccepted(purpose, successCallback, null); }, gdprApplies: function(callback) { var successCallback = function(messageOrEventToDispatch) { if (messageOrEventToDispatch != null && messageOrEventToDispatch.indexOf("userconsent_gdprApplies-") == 0) { var gdprApplies = messageOrEventToDispatch.substr("userconsent_gdprApplies-".length); callback(gdprApplies === "true"); } else { adinCubeEventListener(messageOrEventToDispatch); } }; bridge.userConsent.gdprApplies(successCallback, null); }, setEventListener: function(eventListener) { fallbackUserConsentEventListener = eventListener; }, External: { setConsent: function(iabString, nonIABVendorsAccepted) { bridge.userConsent.setConsentExternal(iabString, nonIABVendorsAccepted, adinCubeEventListener, null); } }, Purpose: { INFORMATION: "INFORMATION", PERSONALISATION: "PERSONALISATION", AD: "AD", CONTENT: "CONTENT", MEASUREMENT: "MEASUREMENT" } }; var AdinCubeUserInfo = { setAge: function(age) { bridge.userInfo.setAge(age, adinCubeEventListener, null); }, setGender: function(gender) { bridge.userInfo.setGender(gender, adinCubeEventListener, null); }, setMaritalStatus: function(maritalStatus) { bridge.userInfo.setMaritalStatus(maritalStatus, adinCubeEventListener, null); }, setLocation: function(latitudeInDegrees, longitudeInDegrees) { bridge.userInfo.setLocation(latitudeInDegrees, longitudeInDegrees, adinCubeEventListener, null); }, Gender: { MALE: "MALE", FEMALE: "FEMALE" }, MaritalStatus: { SINGLE: "SINGLE", MARRIED: "MARRIED" } }; var AdinCube = { setAndroidAppKey: function(appKey) { if(window.device.platform == "Android") { bridge.setAppKey(appKey, adinCubeEventListener, null); } }, setIOSAppKey: function(appKey) { if(window.device.platform == "iOS") { bridge.setAppKey(appKey, adinCubeEventListener, null); } }, logNative: function(message) { bridge.logNative(message, adinCubeEventListener, null); }, toastNative: function(message) { bridge.toastNative(message, adinCubeEventListener, null); }, interstitial: AdinCubeInterstitial, banner: AdinCubeBanner, rewarded: AdinCubeRewarded, userConsent: AdinCubeUserConsent, userInfo: AdinCubeUserInfo, SafeArea: { TOP: "TOP", RIGHT: "RIGHT", BOTTOM: "BOTTOM", LEFT: "LEFT" } }; module.exports = AdinCube;