4

当我尝试执行下面的代码时,我得到的'AdMob'未定义。我正尝试使用Cordova AdMob Pro插件,但无法通过未定义的错误。我无法确认插件是否被加载。如何让AdMob Pro在Ionic中工作

下面是我使用的版本:AngularJS V1.3.4,科尔多瓦V4.1.2,V1.2.8离子。我在运行Android 4.4.4版的Galaxy S5手机上运行代码。

我尝试添加在app.js和控制器都该代码。

$ionicPlatform.ready(function() { 
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
    // for form inputs) 
    if(window.cordova && window.cordova.plugins.Keyboard) { 
     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
    } 
    if(window.StatusBar) { 
     // org.apache.cordova.statusbar required 
     StatusBar.styleDefault(); 
    } 

    console.log('window.cordova.plugins: ' + window.cordova.plugins); //returns object 
    console.log('window.cordova.plugins.AdMob: ' + window.cordova.plugins.AdMob); //returns undefined 
    console.log('window.AdMob: ' + window.AdMob); //returns undefined 
    console.log('AdMob: ' + AdMob); //returns undefined 
    console.log('window.AdmobAd: ' + window.AdmobAd); //returns undefined 
    console.log('AdmobAd: ' + AdmobAd); //returns undefined 

    if (window.AdMob || AdMob) { 
     alert('admob plugin found'); 
     var admob_key = (device.platform == "Android") ? "ADMOB_KEY" : "IOS_PUBLISHER_KEY"; 
     var admob = window.AdMob; 
     admob.createBannerView(
      { 
       'publisherId': admob_key, 
       'adSize': admob.AD_SIZE.BANNER, 
       'bannerAtTop': false 
      }, 
      function() { 
       admob.requestAd(
        { 'isTesting': false }, 
        function() { 
         admob.showAd(true); 
        }, 
        function() { console.log('failed to request ad'); } 
       ); 
      }, 
      function() { console.log('failed to create banner view'); } 
     ); 
    } 
}); 
+0

我从来没有与Pro版本工作过,但你总是可以建立与本教程中的基本版本: http://blog.nraboy.com/2014/06/using-admob-ionicframework/ – 2014-12-05 15:39:27

+0

感谢Nic。我以前实际上是在阅读你的博客,以帮助我开始。我需要使用新的AdMob Pro,因为我想使用facebook中介。我通过删除平台和插件并从头开始,让所有的工作都可以开展。 – Que 2014-12-09 16:03:59

+0

@Que与新插件发布APi已更改,因此请确保您使用的是“专业版”插件http://pointdeveloper.com/how-to-add-banner-ads-to-ionic-apps-using-admob -pro-plugin/ – krv 2015-08-02 05:48:04

回答

1

只有通过此也去了,发现错误是试图找到“AdMob的”如果在那不存在的(window.AdMob || AdMob的)

如果你只是使用“如果(window.AdMob){'你应该没问题。

+0

感谢它的帮助。 **但我没有看到广告**。我已在设备上进行测试。我看到 alert('admob plugin found')在if(window.admob)里面工作。 我应该做点别的吗? – 2016-01-02 15:00:33

1

我刚刚开发AdMob上的临之上的AngularJS扩展,所以你可以用这个插件科尔多瓦交互更好。

下面是存储库:https://github.com/santonocito/angular-admobpro

这里如何通过离子使用它的一个例子:

angular.module('yourApp', ['ionic', 'admob']) 
    .run(function($rootScope, $state, $log, $adMob) { 

     $ionicPlatform.ready(function() { 
      // AdMob 
      if(window.AdMob) { 
       var admobid; 

       if (device.platform == "Android") { 
        admobid = { // for Android 
         banner: 'ca-app-pub-your-ad-key', 
         interstitial: 'ca-app-pub-your-ad-key' 
        }; 
       } else { 
        admobid = { // for iOS 
         banner: 'ca-app-pub-your-ad-key', 
         interstitial: 'ca-app-pub-your-ad-key' 
        }; 
       } 

       $adMob.createBanner({ 
        adId: admobid.banner, 
        autoShow: true, 
        bgColor: 'black', 
        position: $adMob.position.BOTTOM_CENTER 
       }); 

       $adMob.prepareInterstitial({ 
        adId: admobid.interstitial, 
        autoShow: false 
       }); 
      } 
     }); 
    }); 
+0

我尝试添加你的插件,但它扔了一个错误: “亭子ENORESTARGET没有标签发现,能够满足1.2.2 附加的错误信息:在git的 可用版本://github.com/driftyco/ ionic-bower.git:1.2.2-nightly-1 .....“**并继续**。 如果需要,我可以提供在终端上生成的完整错误。 – 2016-01-02 15:12:51

0

1.安装的AdMob PhoneGap的插件

cordova plugin add admob 
  • 初始化的AdMob插件,插件初始化事件deviceready后

    admob.initAdmob("admob banner ID","admob interstitial ID"); 
    
  • 3.show AdMob广告

    admob.showBanner(admob.BannerSize.BANNER,admob.Position.TOP_APP);//show banner at the top of app 
    

    裁判:https://github.com/admob-google/admob-cordova