yodo1-mas-react-native-plugin
Version:
React Native plugin for Yodo1 MAS SDK
104 lines • 3.7 kB
JavaScript
import { NativeModules, NativeEventEmitter, Alert, findNodeHandle, requireNativeComponent, Platform } from 'react-native';
const {
Yodo1MASAds
} = NativeModules;
export const NativeView = requireNativeComponent('NativeView');
export const BannerView = requireNativeComponent('BannerView');
export const CustomView = requireNativeComponent('CustomView');
export const hasReward = () => {
// Your code here to check if the user has earned a reward
// From Redux, AsyncStorage
return true;
};
export const setReward = () => {
// Your code here to confirm that the user earned a reward
// Redux, AsyncStorage, etc...
};
export const showAdExplainer = () => Alert.alert('You must watch the entire Ad to earn the reward!');
export const ShowRewardGivenAlert = () => Alert.alert('Reward Added');
const handleYodoEvent = ({
value
}) => {
__DEV__ && console.log(`MAS Event: ${value}`);
switch (value) {
case 'onMasInitSuccessful':
break;
case 'onMasInitFailed':
setTimeout(() => Yodo1MASAds.initMasSdk(true, true, true), 5000);
break;
case 'reward-onRewardAdEarned':
setTimeout(() => hasReward() ? null : ShowRewardGivenAlert(), 5000);
setReward();
break;
case 'reward-onRewardAdLoaded':
setTimeout(() => hasReward() ? null : showAdExplainer(), 500);
break;
case 'reward-onRewardAdOpened':
setTimeout(() => hasReward() ? null : showAdExplainer(), 500);
break;
case 'reward-onRewardAdClosed':
setTimeout(() => hasReward() ? null : showAdExplainer(), 500);
break;
case 'reward-onRewardAdFailedToLoad':
setReward();
break;
case 'adRefresh':
break;
}
};
export const registerYodoAds = () => {
const eventEmitter = new NativeEventEmitter(Yodo1MASAds);
const eventListener = eventEmitter.addListener('adEvent', handleYodoEvent);
Yodo1MASAds.initMasSdk(true, true, true);
return eventListener;
};
export const showBannerAds = ref => {
const reactTag = findNodeHandle(ref);
Yodo1MASAds.showBannerAds(reactTag);
};
export const showInterstitialAds = async () => {
Yodo1MASAds.showInterstitialAds();
};
export const showInterstitialAdsWithPlacementId = async () => {
Yodo1MASAds.showInterstitialAdsWithPlacementId('InterstitialAdPlacementId');
};
export const showRewardedAds = async () => {
Yodo1MASAds.showRewardedAds();
};
export const showRewardedAdsWithPlacementId = async () => {
Yodo1MASAds.showRewardedAdsWithPlacementId('RewardedAdPlacementId');
};
export const showAppOpenAds = async () => {
Yodo1MASAds.showAppOpenAds();
};
export const showAppOpenAdsWithPlacementId = async () => {
Yodo1MASAds.showAppOpenAdsWithPlacementId('AppOpenAdPlacementId');
};
export const showRewardInterstitialAds = async () => {
Yodo1MASAds.showRewardInterstitialAds();
};
export const showRewardInterstitialAdsWithPlacementId = async () => {
Yodo1MASAds.showRewardInterstitialAdsWithPlacementId('RewardInterstitialAdPlacementId');
};
export const showNativeAds = async ref => {
const reactTag = findNodeHandle(ref);
Yodo1MASAds.showNativeAds(reactTag);
};
export const setCCPA = async () => {
Yodo1MASAds.setCCPA(true);
};
export const setCOPPA = async () => {
Yodo1MASAds.setCOPPA(true);
};
export const setGDPR = async () => {
Yodo1MASAds.setGDPR(true);
};
export const closeBannerAd = async ref => {
const reactTag = findNodeHandle(ref);
Platform.OS === 'ios' ? Yodo1MASAds.closeBannerAd(reactTag) : Yodo1MASAds.closeBannerAd();
};
export const closeNativeAd = async ref => {
const reactTag = findNodeHandle(ref);
Platform.OS === 'ios' ? Yodo1MASAds.closeNativeAd(reactTag) : Yodo1MASAds.closeNativeAd();
};
//# sourceMappingURL=index.js.map