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