Как заставить AdMob Pro работать в Ionic

Я получаю "AdMob" undefined, когда пытаюсь выполнить приведенный ниже код. Я пытаюсь использовать плагин Cordova AdMob Pro, но не могу пройти мимо ошибок (w90). Я не могу подтвердить, загружен ли плагин.

Вот версии, которые я использую: AngularJS v1.3.4, Cordova v4.1.2, Ionic v1.2.8. Я запускаю код на телефоне Galaxy S5 с Android версии 4.4.4.

Я попытался добавить этот код как в 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'); }
 );
 }
});
3 ответа

Я только что разработал расширение AngularJS поверх AdMob Pro, чтобы вы могли лучше взаимодействовать с этим плагином Cordova.

Вот репозиторий: https://github.com/santonocito/angular-admobpro

Вот пример того, как вы можете использовать его с Ionic:

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
 });
 }
 });
 });


Просто просмотрел это и обнаружил, что ошибка заключается в попытке найти "AdMob", если этого не существует, если (window.AdMob || AdMob)

Если вы просто используете 'if (window.AdMob) {', все должно быть хорошо.


1. установить плагин admob phonegap

cordova plugin add admob
  1. init admob plugin, плагин инициализации после события deviceready

    admob.initAdmob("admob banner ID","admob interstitial ID");

3.show admob ads

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

ref: https://github.com/admob-google/admob-cordova

licensed under cc by-sa 3.0 with attribution.