我正在尝试在我的React本机应用中使用ADMOB奖励视频。
这是我正在测试的代码:
const advert = firebase.admob().rewarded('ca-app-pub-3940256099942544/5224354917');
const AdRequest = firebase.admob.AdRequest;
const request = new AdRequest();
// Load the advert with our AdRequest
advert.loadAd(request.build());
advert.on('onAdLoaded', () => {
console.log('Advert ready to show.');
});
advert.on('onRewarded', (event) => {
console.log('The user watched the entire video and will now be rewarded!', event);
});
if (advert.isLoaded()) {
advert.show();
}
else {
advert.on('onAdLoaded', () => {
console.log('Advert ready to show.');
advert.show();
});
}
当我从应用程序的主屏幕(导航器的根)执行它时,这是完美工作的,但是在我通过调用this.props.navigation.navigate('ScreenB');
移动到另一个屏幕之后,这已经不复存在:
广告正常显示,但我无法跳过,打开或关闭它...应用程序陷入此状态。
我目前正在iOS模拟器上测试,我使用以下配置:
" react":" 16.6.0-alpha.8af6728"," react-native":"^0.57.2", "反应新的 - 循环":"^5.1.0"
我缺少某些东西还是错误?
每当您想显示横幅时,您都需要再次重建它。
一个奖励的视频实例只能显示一次。如果你想 要显示另一个,请创建一个新的。
advert.loadAd(request.build());
您可以在全屏广告显示并在关闭后将其带回时尝试隐藏状态栏。
这是我的代码:
const [isStatusBarhiddden, setIsStatusBarhiddden] = useState(false);
const unsubscribeLoaded = rewardedInterstitial?.addAdEventListener(
RewardedAdEventType.LOADED,
() => {
setIsStatusBarhiddden(true);
},
);
const unsubscribeClosed = rewardedInterstitial?.addAdEventListener(
AdEventType.CLOSED,
() => {
setIsStatusBarhiddden(false);
},
);
return(
<StatusBar hidden={isStatusBarhiddden} />
)