在React Native中多次显示AdMob奖励广告。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在React Native中多次显示AdMob奖励广告。相关的知识,希望对你有一定的参考价值。
我已经创建了一个按钮,每当它被点击时就会显示一个奖励广告。现在有两个问题:1.加载广告需要太多时间(我可以在任何事情发生之前点击一两次按钮)。我想在广告关闭后立即重新加载广告。它可以工作,但App需要重新启动。
AdMobRewardedComponent.js。
async componentDidMount() {
await setTestDeviceIDAsync("EMULATOR");
AdMobRewarded.setAdUnitID("ca-app-pub-3940256099942544/5224354917");
AdMobRewarded.addEventListener("rewardedVideoDidLoad", () => {
console.log("VideoLoaded")
});
AdMobRewarded.addEventListener("rewardedVideoDidFailToLoad", () =>
console.log("FailedToLoad")
);
AdMobRewarded.addEventListener("rewardedVideoDidOpen", () =>
console.log("Opened")
);
AdMobRewarded.addEventListener("rewardedVideoDidClose", () => {
loadAd(request.build());
console.log("Closed")
});
AdMobRewarded.addEventListener("rewardedVideoWillLeaveApplication", () =>
console.log("LeaveApp")
);
AdMobRewarded.addEventListener("rewardedVideoDidStart", () =>
console.log("Started")
);
AdMobRewarded.addEventListener("rewardedVideoDidRewardUser", () =>
console.log("Rewarded"),
);
await AdMobRewarded.requestAdAsync();
}
componentWillUnmount() {
AdMobRewarded.removeAllListeners();
}
_handlePress = async () => {
await AdMobRewarded.showAdAsync();
};
render() {
const { loadedAd } = this.state;
return (
<TouchableButton onPress={this._handlePress} title="Coins erhalten!" image="adButton" status="active" style={styles.adButton}/>
);
}
};
有什么方法可以在不重启整个App的情况下请求一个新的广告吗? 谢谢大家的回答
答案
为了防止按钮被多次点击的问题,你可以使用debounce功能。React Native。使用lodash debounce
或者,你可以在你的店铺管理你的打开的广告,这样你就可以确保你不会打开一个广告两次,你可以打开一个新的广告,一旦之前的广告已经关闭,例如。
const { isInterstitialAdOpen, } = useSelector(state => state.home);
if ((!__DEV__ && !isInterstitialAdOpen)) {
dispatch(openInterstitialAd());
AdMobInterstitial.setAdUnitID(AdMobController.getGeneralInterstitialId());
AdMobInterstitial.setTestDevices([AdMobInterstitial.simulatorId]);
AdMobInterstitial.addEventListener('adClosed', () => dispatch(closeInterstitialAd()));
AdMobInterstitial.requestAd().then(() => AdMobInterstitial.showAd()).catch((error) => {
});
}
以上是关于在React Native中多次显示AdMob奖励广告。的主要内容,如果未能解决你的问题,请参考以下文章
React Native Admob无法正常工作ERROR_CODE_INTERNAL_ERROR
当我在项目应用程序中安装并链接 react-native-admob 在加载时崩溃
@react-native-firebase/admob 的基本用法给出:“TypeError: (0, _admob.default) is not a function”。是不是已弃用?或为啥不起