React native 反应本地Admob间隙广告和奖励广告未按预期显示

React native 反应本地Admob间隙广告和奖励广告未按预期显示,react-native,admob,admob-rewardedvideoad,React Native,Admob,Admob Rewardedvideoad,我有一个React-Native应用程序,它也安装了React-Native Admob。我可以在我的应用程序中看到一个横幅,没有任何问题。然而,我有一些麻烦得到间隙或奖励的应用程序显示 我更喜欢得到奖励的广告,所以我将从这个开始。用户可以免费将图片和信息上传到应用程序。单击“报告”按钮时,会打开一个模式,询问他们是否愿意支付“免费完成”的费用。如果他们选择免费模式,则应关闭模式并显示奖励应用程序。查看此内容后,应开始上载 根据一个示例应用程序,我必须将它们放在ComponentdidMount

我有一个React-Native应用程序,它也安装了React-Native Admob。我可以在我的应用程序中看到一个横幅,没有任何问题。然而,我有一些麻烦得到间隙或奖励的应用程序显示

我更喜欢得到奖励的广告,所以我将从这个开始。用户可以免费将图片和信息上传到应用程序。单击“报告”按钮时,会打开一个模式,询问他们是否愿意支付“免费完成”的费用。如果他们选择免费模式,则应关闭模式并显示奖励应用程序。查看此内容后,应开始上载

根据一个示例应用程序,我必须将它们放在ComponentdidMount中,所以我想我应该将它们放在一个useEffect挂钩中

useEffect(() => {
    AdMobRewarded.setTestDevices([AdMobRewarded.simulatorId]);
    AdMobRewarded.setAdUnitID('ca-app-pub-3940256099942544/5224354917');

    AdMobRewarded.addEventListener('rewarded', reward =>
        console.log('AdMobRewarded => rewarded', reward),
    );
    AdMobRewarded.addEventListener('adLoaded', () =>
        console.log('AdMobRewarded => adLoaded'),
    );
    AdMobRewarded.addEventListener('adFailedToLoad', error =>
        console.warn(error),
    );
    AdMobRewarded.addEventListener('adOpened', () =>
        console.log('AdMobRewarded => adOpened'),
    );
    AdMobRewarded.addEventListener('videoStarted', () =>
        console.log('AdMobRewarded => videoStarted'),
    );
    AdMobRewarded.addEventListener('adClosed', () => {
        console.log('AdMobRewarded => adClosed');
        AdMobRewarded.requestAd().catch(error => console.warn(error));
    });
    AdMobRewarded.addEventListener('adLeftApplication', () =>
        console.log('AdMobRewarded => adLeftApplication'),
    );
    AdMobRewarded.requestAd().catch(error => console.warn(error));
}, [])
因此,在模式中单击“免费”按钮时,会调用AddUsingAndler

const addUsingAdHandler = () => {
    setIsAddMode(false)
    console.log('Rewared video is shown')
    AdMobRewarded.showAd().catch(error => console.warn(error));
然而,当我看到这一页时,我内心却收到了一个警告

{"framesToPop":1, "code": "E_AD_FAILED_TO_LOAD","nativeStackIOS etc. etc.

Error: Cannot send request while another ad is being presented. Another rewarded ad may be requested after the current ad closes.
    at createErrorFromErrorData (utils.js:6)
    at RNAdMobRewarded.js:30
    at RCTDeviceEventEmitter.emit (EventEmitter.js:189)
    at MessageQueue.__callFunction (MessageQueue.js:366)
    at MessageQueue.js:106
    at MessageQueue.__guard (MessageQueue.js:314)
    at MessageQueue.callFunctionReturnFlushedQueue (MessageQueue.js:105)
    at RNDebuggerWorker.js:2
如果我忽略此警告并单击“免费”按钮,模式将按预期关闭,同时显示我的控制台日志视频。但是,在日志之后出现错误:Ad未准备好显示

所以我认为这是因为我在使用Admob的测试ID时,没有在我的在线帐户/应用程序上激活奖励广告。所以我做了间质广告,几天前激活的。这在没有任何警告的情况下工作。但是,当模式关闭且广告应显示时,不会发生任何情况

有人能指导我让Admob与客户一起工作吗?如果需要,我可以再次将代码更改为中间代码,并为您测试/显示代码。 React本机cli:2.0.1 反应本机:0.59.10
React native admob:2.0.0-beta.6

所以我尝试了我的android应用程序,但它给出了相同的警告,并且没有显示应用程序。我在app.js文件中复制了adMob示例中的内容,添加显示没有任何问题。所以在我的代码中。。。我相信我不能像在useEffect钩子中使用AdMobPrewarded.addEventListeners那样使用它们。在我的道路上,不断的尝试和错误使这一切变得糟糕。如果有人用钩子实现了这个功能,或者知道如何实现它,我很想知道如何实现。我现在的安卓应用程序正如期工作。只有IOS应用程序无法与奖励应用程序一起使用。我在使用Publisher Banner for ad Manager时收到相同错误。在测试中工作,但不在生产中。你是如何在android上解决这个问题的?不幸的是,我还没有找到解决这个问题的方法。我在这个应用程序中做了进一步的改进,稍后会再回头看。所以我尝试了我的android应用程序,但它给出了相同的警告,并且没有显示应用程序。我在app.js文件中复制了adMob示例中的内容,添加显示没有任何问题。所以在我的代码中。。。我相信我不能像在useEffect钩子中使用AdMobPrewarded.addEventListeners那样使用它们。在我的道路上,不断的尝试和错误使这一切变得糟糕。如果有人用钩子实现了这个功能,或者知道如何实现它,我很想知道如何实现。我现在的安卓应用程序正如期工作。只有IOS应用程序无法与奖励应用程序一起使用。我在使用Publisher Banner for ad Manager时收到相同错误。在测试中工作,但不在生产中。你是如何在android上解决这个问题的?不幸的是,我还没有找到解决这个问题的方法。我在应用程序中取得了进一步的进展,稍后将对此进行回顾。