react-native-appodeal
Version:
React Native Module created to support Appodeal SDK for iOS and Android platforms
177 lines (176 loc) • 5.8 kB
JavaScript
import { NativeModules, NativeEventEmitter, Platform } from "react-native";
const RNAppodeal = NativeModules.RNAppodeal;
const dummyHandler = () => { };
const emitter = new NativeEventEmitter(RNAppodeal);
const subscriptions = new Map();
const _addEventListener = (event, handler) => {
let listener = emitter.addListener(event, handler);
subscriptions.set(handler, listener);
return { remove: () => _removeEventListener(event, handler) };
};
const _removeEventListener = (event, handler) => {
const listener = subscriptions.get(handler);
listener.remove();
subscriptions.delete(handler);
};
const _removeAllListeners = () => {
subscriptions.forEach((listener, key, map) => {
listener.remove();
map.delete(key);
});
};
const appodeal = {
addEventListener: (event, handler) => {
_addEventListener(event, handler);
},
removeEventListener: (event, handler) => {
_removeEventListener(event, handler);
},
removeAllListeners: () => {
_removeAllListeners();
},
initialize: (appKey, adTypes) => {
RNAppodeal.initializeWithAppKey(appKey, adTypes);
},
isInitialized: (adTypes) => {
return RNAppodeal.isInitialized(adTypes);
},
show: (adTypes, placement) => {
RNAppodeal.show(adTypes, placement || null);
},
isLoaded: (adTypes) => {
return RNAppodeal.isLoaded(adTypes);
},
canShow: (adTypes, placement) => {
return RNAppodeal.canShow(adTypes, placement || null);
},
hide: (adTypes) => {
RNAppodeal.hide(adTypes);
},
cache: (adTypes) => {
RNAppodeal.cache(adTypes);
},
setAutoCache: (adTypes, value) => {
RNAppodeal.setAutoCache(adTypes, value);
},
isPrecache: (adTypes) => {
return RNAppodeal.isPrecache(adTypes);
},
setTabletBanners: (value) => {
RNAppodeal.setTabletBanners(value);
},
setSmartBanners: (value) => {
RNAppodeal.setSmartBanners(value);
},
setBannerAnimation: (value) => {
RNAppodeal.setBannerAnimation(value);
},
consentStatus: () => {
return RNAppodeal.consentStatus();
},
revokeConsent: () => {
RNAppodeal.revokeConsent();
},
requestConsentInfoUpdate: (appKey) => {
return RNAppodeal.requestConsentInfoUpdateWithAppKey(appKey).then((parameters) => parameters.status);
},
showConsentFormIfNeeded: () => {
return RNAppodeal.showConsentFormIfNeeded().then((parameters) => parameters.status);
},
showConsentForm: () => {
return RNAppodeal.showConsentForm().then((parameters) => parameters.status);
},
setChildDirectedTreatment: (value) => {
RNAppodeal.setChildDirectedTreatment(value);
},
setTesting: (value) => {
RNAppodeal.setTesting(value);
},
setLogLevel: (value) => {
RNAppodeal.setLogLevel(value);
},
setTriggerPrecacheCallbacks: (adTypes, value) => {
RNAppodeal.setTriggerPrecacheCallbacks(adTypes, value);
},
disableNetwork: (network, adTypes) => {
RNAppodeal.disableNetwork(network, adTypes);
},
getVersion: () => {
return RNAppodeal.getVersion();
},
setUserId: (id) => {
RNAppodeal.setUserId(id);
},
setExtrasValue: (value, key) => {
if (Platform.OS == "ios") {
RNAppodeal.setExtrasValue(value, key);
}
else if (typeof value === "string") {
RNAppodeal.setExtrasStringValue(value, key);
}
else if (typeof value === "number" && Number.isInteger(value)) {
RNAppodeal.setExtrasIntegerValue(value, key);
}
else if (typeof value === "number") {
RNAppodeal.setExtrasDoubleValue(value, key);
}
else if (typeof value === "boolean") {
RNAppodeal.setExtrasBooleanValue(value, key);
}
else if (typeof value === "object") {
RNAppodeal.setExtrasMapValue(value, key);
}
else if (value === null) {
RNAppodeal.removeExtrasValue(key);
}
},
getExtras: () => {
return RNAppodeal.getExtras();
},
setCustomStateValue: (value, key) => {
if (Platform.OS == "ios") {
RNAppodeal.setCustomStateValue(value, key);
}
else if (typeof value === "string") {
RNAppodeal.setCustomStateStringValue(value, key);
}
else if (typeof value === "number" && Number.isInteger(value)) {
RNAppodeal.setCustomStateIntegerValue(value, key);
}
else if (typeof value === "number") {
RNAppodeal.setCustomStateDoubleValue(value, key);
}
else if (typeof value === "boolean") {
RNAppodeal.setCustomStateBooleanValue(value, key);
}
else if (value === null) {
RNAppodeal.removeCustomStateValue(key);
}
},
getCustomState: () => {
return RNAppodeal.getCustomState();
},
getRewardParameters: (placement) => {
return RNAppodeal.getRewardParameters(placement);
},
predictedEcpm: (adType) => {
return RNAppodeal.predictedEcpm(adType);
},
trackInAppPurchase: (amount, currency) => {
RNAppodeal.trackInAppPurchase(amount, currency);
},
validateAndTrackInAppPurchase: (purchase, callback) => {
RNAppodeal.validateAndTrackInAppPurchase(purchase, callback || dummyHandler);
},
trackEvent: (name, parameters) => {
RNAppodeal.trackEvent(name, parameters || null);
},
setBidonEndpoint: (endpoint) => {
RNAppodeal.setBidonEndpoint(endpoint);
},
getBidonEndpoint: () => {
return RNAppodeal.getBidonEndpoint();
},
};
export default appodeal;
;