本文介绍了AdMob无法在设备离线时显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在我的应用程序中显示admob,但它不会显示在屏幕上。



我添加了它的插件: - cordova插件添加com.rjfun.cordova。 plugin.admob
cordova plugin add



这里是我的代码,我在我的app.js类下运行函数: -



  $ ionicPlatform .ready(function(){if(window.plugins&& window.plugins.AdMob){alert('inside'); var admob_key = device.platform ==Android?ca-app-pub-6869992474017983/4748283957:IOS_PUBLISHER_KEY; var admob = window.plugins.AdMob; admob .createBannerView({'adId':admob_key,'position':admob .AD_POSITION.BOTTOM_CENTER,'adSize':admob.AD_SIZE.BANNER,'bannerAtTop':false},function(){admob .requestAd({'isTesting':false},function(){admob .showAd(true); },function(){alert(failed to request ad); console .log('failed to request ad'); }); },function(){alert(无法创建横幅视图); console .log('failed to create banner view'); }); } else {alert(AdMob plugin not available / ready。); } 



>

1)



2)



请提供



感谢

解决方案

在最新版本的Admob和nraboy的博客之间改变。我注意到几个星期后,当我使用插件,在我检查插件.js文件以找出更改后的以下差异:




  • Admob不再位于 window.plugins.Admob 下找到 window.Admob

  • 配置选项 publisherId 现在 adId

  • 配置选项 bannerAtTop 现在位置

  • admob.createBannerView ()现在只是 admob.createBanner()它会为你做所有的工作,当谈到显示添加调用 admob.requestAd())等。



  if(window.AdMob){
var admob = window.AdMob;
admob.createBanner({
adId:admob_key,
adSize:admob.AD_SIZE.SMART_BANNER,
position:admob.AD_POSITION.BOTTOM_CENTER,
isTesting:false, / Live
// isTesting:true,// Test
autoShow:true
},function(data){
console.log('Banner created ...'+ angular .toJson(data));
},function(err){
console.log('无法创建横幅视图...'+ angular.toJson(err));
} );
} else {
// plugin not found
}

其他信息



如果您不知道其他AD_SIZE和AD_POSITION选项(从插件.js文件复制)

  .AD_POSITION = {
NO_CHANGE:0,
TOP_LEFT:1,
TOP_CENTER:2,
TOP_RIGHT:3,
LEFT:4,
CENTER:5,
RIGHT:6,
BOTTOM_LEFT:7,
BOTTOM_CENTER:8,
BOTTOM_RIGHT:9,
POS_XY:10
};

.AD_SIZE = {
SMART_BANNER:'SMART_BANNER',
BANNER:'BANNER',
MEDIUM_RECTANGLE:'MEDIUM_RECTANGLE',
FULL_BANNER:'FULL_BANNER ',
LEADERBOARD:'LEADERBOARD',
SKYSCRAPER:'SKYSCRAPER'
};


i am trying to display admob inside my application but it's not getting displayed on screen.

I added its plugins :- cordova plugin add com.rjfun.cordova.plugin.admobcordova plugin add https://github.com/floatinghotpot/cordova-plugin-admob.git

here is my code which i have done in my app.js class under run function :-

$ionicPlatform
  .ready(function() {

      if (window.plugins && window.plugins.AdMob) {
        alert('inside');
        var admob_key = device.platform == "Android" ? "ca-app-pub-6869992474017983/4748283957" : "IOS_PUBLISHER_KEY";
        var admob = window.plugins.AdMob;
        admob
          .createBannerView({
              'adId': admob_key,
              'position': admob.AD_POSITION.BOTTOM_CENTER,
              'adSize': admob.AD_SIZE.BANNER,
              'bannerAtTop': false
            },
            function() {
              admob
                .requestAd({
                    'isTesting': false
                  },
                  function() {
                    admob
                      .showAd(true);
                  },
                  function() {
                    alert("failed to request ad");
                    console
                      .log('failed to request ad');
                  });
            },
            function() {
              alert("failed to create banner view");
              console
                .log('failed to create banner view');
            });
      } else {
        alert("AdMob plugin not available/ready.");
      }

links from which i refer above code :-

1) https://blog.nraboy.com/2014/06/using-admob-ionicframework/

2) https://github.com/floatinghotpot/cordova-admob-pro

Please provide me any suggestion on it.

Thanks

解决方案

Some things have changed between the latest version of Admob and that in the blog by nraboy. I noticed the following differences a few weeks back when I used the plugin after I inspected the plugins .js file to figure out the changes:

  • Admob was no longer located under window.plugins.Admob I found it under window.Admob
  • Config option publisherId is now adId
  • Config option bannerAtTopis now position
  • admob.createBannerView() is now just admob.createBanner() which does all the work for you when it comes to showing the add (you don't need to call admob.requestAd()) etc.

Template to follow

           if (window.AdMob) {
                var admob = window.AdMob;
                admob.createBanner({
                    adId: admob_key,
                    adSize: admob.AD_SIZE.SMART_BANNER,
                    position: admob.AD_POSITION.BOTTOM_CENTER,
                    isTesting: false, //Live
                    //isTesting: true, //Test
                    autoShow: true
                }, function (data) {
                    console.log('Banner created... ' + angular.toJson(data));
                }, function (err) {
                    console.log('Failed to create banner view... ' + angular.toJson(err));
                });
            } else {
                //plugin not found
            }

Additional Info

In case you aren't aware of other AD_SIZE and AD_POSITION options (copied from the plugins .js file)

.AD_POSITION = {
  NO_CHANGE: 0,
  TOP_LEFT: 1,
  TOP_CENTER: 2,
  TOP_RIGHT: 3,
  LEFT: 4,
  CENTER: 5,
  RIGHT: 6,
  BOTTOM_LEFT: 7,
  BOTTOM_CENTER: 8,
  BOTTOM_RIGHT: 9,
  POS_XY: 10
};

.AD_SIZE = {
  SMART_BANNER: 'SMART_BANNER',
  BANNER: 'BANNER',
  MEDIUM_RECTANGLE: 'MEDIUM_RECTANGLE',
  FULL_BANNER: 'FULL_BANNER',
  LEADERBOARD: 'LEADERBOARD',
  SKYSCRAPER: 'SKYSCRAPER'
};

这篇关于AdMob无法在设备离线时显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-21 02:28