2 Star 0 Fork 0

mirrors_gorangajic/react-native-admob

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
RNAdMobInterstitial.js 2.81 KB
一键复制 编辑 原始数据 按行查看 历史
'use strict';
import {
NativeModules,
DeviceEventEmitter,
} from 'react-native';
const RNAdMobInterstitial = NativeModules.RNAdMobInterstitial;
const eventHandlers = {
interstitialDidLoad: new Map(),
interstitialDidFailToLoad: new Map(),
interstitialDidOpen: new Map(),
interstitialDidClose: new Map(),
interstitialWillLeaveApplication: new Map(),
};
const addEventListener = (type, handler) => {
switch (type) {
case 'interstitialDidLoad':
eventHandlers[type].set(handler, DeviceEventEmitter.addListener(type, handler));
break;
case 'interstitialDidFailToLoad':
eventHandlers[type].set(handler, DeviceEventEmitter.addListener(type, (error) => { handler(error); }));
break;
case 'interstitialDidOpen':
eventHandlers[type].set(handler, DeviceEventEmitter.addListener(type, handler));
break;
case 'interstitialDidClose':
eventHandlers[type].set(handler, DeviceEventEmitter.addListener(type, handler));
break;
case 'interstitialWillLeaveApplication':
eventHandlers[type].set(handler, DeviceEventEmitter.addListener(type, handler));
break;
default:
console.log(`Event with type ${type} does not exist.`);
}
}
const removeEventListener = (type, handler) => {
if (!eventHandlers[type].has(handler)) {
return;
}
eventHandlers[type].get(handler).remove();
eventHandlers[type].delete(handler);
}
const removeAllListeners = () => {
DeviceEventEmitter.removeAllListeners('interstitialDidLoad');
DeviceEventEmitter.removeAllListeners('interstitialDidFailToLoad');
DeviceEventEmitter.removeAllListeners('interstitialDidOpen');
DeviceEventEmitter.removeAllListeners('interstitialDidClose');
DeviceEventEmitter.removeAllListeners('interstitialWIllLeaveApplication');
};
// replaces deprecated API
const tryShowNewInterstitial = (testID) => {
console.warn(`tryShowNewInterstitial method is deprecated and will be removed in the next major release, please use requestAd() and showAd() directly.\n\nExample: AdMobInterstitial.requestAd(AdMobInterstitial.showAd)`);
if (testID) {
RNAdMobInterstitial.setTestDeviceID(testID);
}
RNAdMobInterstitial.isReady((isReady) => {
if (isReady) {
RNAdMobInterstitial.showAd(() => {});
} else {
RNAdMobInterstitial.requestAd(() => RNAdMobInterstitial.showAd(() => {}));
}
});
};
module.exports = {
...RNAdMobInterstitial,
requestAd: (cb = () => {}) => RNAdMobInterstitial.requestAd(cb), // requestAd callback is optional
showAd: (cb = () => {}) => RNAdMobInterstitial.showAd(cb), // showAd callback is optional
tryShowNewInterstitial,
addEventListener,
removeEventListener,
removeAllListeners,
setAdUnitId: (id) => {
RNAdMobInterstitial.setAdUnitID(id);
console.warn(`setAdUnitId will be deprecated soon. Please use setAdUnitID instead.`);
},
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mirrors_gorangajic/react-native-admob.git
git@gitee.com:mirrors_gorangajic/react-native-admob.git
mirrors_gorangajic
react-native-admob
react-native-admob
master

搜索帮助