【问题标题】:Admob plugin dosen't work with Phonegap appAdmob 插件不适用于 Phonegap 应用
【发布时间】:2018-12-14 16:30:18
【问题描述】:

我希望你能帮助我解决这个问题。在过去的 5 天里,我尝试了一切,但每次都失败了。 我使用 HTML5、CSS 和一点点 Javascript 构建了一个简单的应用程序。该应用程序运行良好。比我想要一个显示在应用程序底部的简单横幅广告。我无法让它工作。有时底部会出现一个黑框,仅此而已,但不是广告。我不太擅长 Javascript,所以问题可能出在代码上,但我已经从插件示例中复制了大部分内容。

来源:https://www.npmjs.com/package/phonegap-admob

我正在使用: - Phonegap 6.1.2(构建服务) - admob-phonegap 插件(<plugin name="phonegap-admob" spec="4.2.1" />) - 其他可以正常工作的插件。

我需要什么: - 页面底部只有一个小横幅广告。

平台: - 只有安卓

在我的 config.xml 中有这一行:

<plugin name="phonegap-admob" spec="4.2.1" />

在 &lt;script&gt;&lt;/script&gt; 标签内的 index.html 中,我有以下代码:

<script>
var isAppForeground = true;

    function initAds() {
      if (admob) {
        var adPublisherIds = {
          android : {
            banner : "ca-app-pub-1467389904102750/404191XXXX",
          }
        };

        var admobid = (/(android)/i.test(navigator.userAgent)) ? adPublisherIds.android : adPublisherIds.ios;

        admob.setOptions({
          publisherId:      admobid.banner,
          interstitialAdId: admobid.interstitial,

        });

        registerAdEvents();

      } else {
        alert('AdMobAds plugin not ready');
      }
    }

    function onAdLoaded(e) {
      if (isAppForeground) {
        if (e.adType === admob.AD_TYPE.INTERSTITIAL) {
          console.log("An interstitial has been loaded and autoshown. If you want to load the interstitial first and show it later, set 'autoShowInterstitial: false' in admob.setOptions() and call 'admob.showInterstitialAd();' here");
        } else if (e.adType === admob.AD_TYPE_BANNER) {
          console.log("New banner received");
        }
      }
    }

    function onPause() {
      if (isAppForeground) {
        admob.destroyBannerView();
        isAppForeground = false;
      }
    }

    function onResume() {
      if (!isAppForeground) {
        setTimeout(admob.createBannerView, 1);
        setTimeout(admob.requestInterstitialAd, 1);
        isAppForeground = true;
      }
    }

    // optional, in case respond to events
    function registerAdEvents() {
      document.addEventListener(admob.events.onAdLoaded, onAdLoaded);
      document.addEventListener(admob.events.onAdFailedToLoad, function (e) {});
      document.addEventListener(admob.events.onAdOpened, function (e) {});
      document.addEventListener(admob.events.onAdClosed, function (e) {});
      document.addEventListener(admob.events.onAdLeftApplication, function (e) {});

      document.addEventListener("pause", onPause, false);
      document.addEventListener("resume", onResume, false);
    }

    function onDeviceReady() {
      document.removeEventListener('deviceready', onDeviceReady, false);
      initAds();

      // display a banner at startup
      admob.createBannerView();

    }

    document.addEventListener("deviceready", onDeviceReady, false);

 </script>     

我希望有人可以帮助我。非常感谢

【问题讨论】:

    标签: javascript admob hybrid-mobile-app phonegap banner-ads


    【解决方案1】:

    好的,整个代码是正确的。问题只是我没有在 Script 标签中链接到 Cordova。我在你不需要的地方读到它,Phonegap / Cordova 会自动包含它。这就是我们所需要的。您是否希望显示 Admob(可能还有许多其他插件),请包括

    <script type = "text / javascript" src = "cordova.js"> </script>.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-02
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 2016-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多