mirror of
https://github.com/zhigang1992/react-native-firebase.git
synced 2026-04-28 12:15:44 +08:00
[admob] A few internal fixes
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
|
/**
|
||||||
|
* @flow
|
||||||
|
*/
|
||||||
export default {
|
export default {
|
||||||
onAdLoaded: 'onAdLoaded',
|
onAdLoaded: 'onAdLoaded',
|
||||||
onAdOpened: 'onAdOpened',
|
onAdOpened: 'onAdOpened',
|
||||||
|
|||||||
@@ -1,18 +1,20 @@
|
|||||||
import { NativeModules, Platform } from 'react-native';
|
import { Platform } from 'react-native';
|
||||||
import { statics } from './';
|
import { statics } from './';
|
||||||
import AdRequest from './AdRequest';
|
import AdRequest from './AdRequest';
|
||||||
import { SharedEventEmitter } from '../../utils/events';
|
import { SharedEventEmitter } from '../../utils/events';
|
||||||
|
import { getNativeModule } from '../../utils/native';
|
||||||
import { nativeToJSError } from '../../utils';
|
import { nativeToJSError } from '../../utils';
|
||||||
|
import type AdMob from './';
|
||||||
const FirebaseAdMob = NativeModules.RNFirebaseAdMob;
|
|
||||||
|
|
||||||
let subscriptions = [];
|
let subscriptions = [];
|
||||||
|
|
||||||
export default class Interstitial {
|
export default class Interstitial {
|
||||||
constructor(admob: Object, adUnit: string) {
|
_admob: AdMob;
|
||||||
|
|
||||||
|
constructor(admob: AdMob, adUnit: string) {
|
||||||
// Interstitials on iOS require a new instance each time
|
// Interstitials on iOS require a new instance each time
|
||||||
if (Platform.OS === 'ios') {
|
if (Platform.OS === 'ios') {
|
||||||
FirebaseAdMob.clearInterstitial(adUnit);
|
getNativeModule(admob).clearInterstitial(adUnit);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 0, len = subscriptions.length; i < len; i++) {
|
for (let i = 0, len = subscriptions.length; i < len; i++) {
|
||||||
@@ -20,7 +22,7 @@ export default class Interstitial {
|
|||||||
}
|
}
|
||||||
subscriptions = [];
|
subscriptions = [];
|
||||||
|
|
||||||
this.admob = admob;
|
this._admob = admob;
|
||||||
this.adUnit = adUnit;
|
this.adUnit = adUnit;
|
||||||
this.loaded = false;
|
this.loaded = false;
|
||||||
SharedEventEmitter.removeAllListeners(`interstitial_${adUnit}`);
|
SharedEventEmitter.removeAllListeners(`interstitial_${adUnit}`);
|
||||||
@@ -67,7 +69,10 @@ export default class Interstitial {
|
|||||||
adRequest = new AdRequest().addTestDevice().build();
|
adRequest = new AdRequest().addTestDevice().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
return FirebaseAdMob.interstitialLoadAd(this.adUnit, adRequest);
|
return getNativeModule(this._admob).interstitialLoadAd(
|
||||||
|
this.adUnit,
|
||||||
|
adRequest
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -84,7 +89,7 @@ export default class Interstitial {
|
|||||||
*/
|
*/
|
||||||
show() {
|
show() {
|
||||||
if (this.loaded) {
|
if (this.loaded) {
|
||||||
FirebaseAdMob.interstitialShowAd(this.adUnit);
|
getNativeModule(this._admob).interstitialShowAd(this.adUnit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +1,22 @@
|
|||||||
import { NativeModules } from 'react-native';
|
|
||||||
import { statics } from './';
|
import { statics } from './';
|
||||||
import AdRequest from './AdRequest';
|
import AdRequest from './AdRequest';
|
||||||
import { SharedEventEmitter } from '../../utils/events';
|
import { SharedEventEmitter } from '../../utils/events';
|
||||||
|
import { getNativeModule } from '../../utils/native';
|
||||||
import { nativeToJSError } from '../../utils';
|
import { nativeToJSError } from '../../utils';
|
||||||
|
import type AdMob from './';
|
||||||
const FirebaseAdMob = NativeModules.RNFirebaseAdMob;
|
|
||||||
|
|
||||||
let subscriptions = [];
|
let subscriptions = [];
|
||||||
|
|
||||||
export default class RewardedVideo {
|
export default class RewardedVideo {
|
||||||
constructor(admob: Object, adUnit: string) {
|
_admob: AdMob;
|
||||||
|
|
||||||
|
constructor(admob: AdMob, adUnit: string) {
|
||||||
for (let i = 0, len = subscriptions.length; i < len; i++) {
|
for (let i = 0, len = subscriptions.length; i < len; i++) {
|
||||||
subscriptions[i].remove();
|
subscriptions[i].remove();
|
||||||
}
|
}
|
||||||
subscriptions = [];
|
subscriptions = [];
|
||||||
|
|
||||||
this.admob = admob;
|
this._admob = admob;
|
||||||
this.adUnit = adUnit;
|
this.adUnit = adUnit;
|
||||||
this.loaded = false;
|
this.loaded = false;
|
||||||
SharedEventEmitter.removeAllListeners(`rewarded_video_${adUnit}`);
|
SharedEventEmitter.removeAllListeners(`rewarded_video_${adUnit}`);
|
||||||
@@ -62,7 +63,10 @@ export default class RewardedVideo {
|
|||||||
adRequest = new AdRequest().addTestDevice().build();
|
adRequest = new AdRequest().addTestDevice().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
return FirebaseAdMob.rewardedVideoLoadAd(this.adUnit, adRequest);
|
return getNativeModule(this._admob).rewardedVideoLoadAd(
|
||||||
|
this.adUnit,
|
||||||
|
adRequest
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -79,7 +83,7 @@ export default class RewardedVideo {
|
|||||||
*/
|
*/
|
||||||
show() {
|
show() {
|
||||||
if (this.loaded) {
|
if (this.loaded) {
|
||||||
FirebaseAdMob.rewardedVideoShowAd(this.adUnit);
|
getNativeModule(this._admob).rewardedVideoShowAd(this.adUnit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ export default class AdMob extends ModuleBase {
|
|||||||
const { adUnit } = event;
|
const { adUnit } = event;
|
||||||
const jsEventType = `interstitial_${adUnit}`;
|
const jsEventType = `interstitial_${adUnit}`;
|
||||||
|
|
||||||
if (!SharedEventEmitter.hasListeners(jsEventType)) {
|
if (SharedEventEmitter.listeners(jsEventType).length === 0) {
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ export default class AdMob extends ModuleBase {
|
|||||||
const { adUnit } = event;
|
const { adUnit } = event;
|
||||||
const jsEventType = `rewarded_video_${adUnit}`;
|
const jsEventType = `rewarded_video_${adUnit}`;
|
||||||
|
|
||||||
if (!SharedEventEmitter.hasListeners(jsEventType)) {
|
if (SharedEventEmitter.listeners(jsEventType).length === 0) {
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user