Admob Phonegap不起作用

时间:2015-05-26 13:59:04

标签: cordova admob

我正在尝试在我的phonegap应用程序中添加Admob,但他不能正常工作,我不知道为什么:/

function domLoaded(){
 alert("loaded");
 var IS_APP = document.URL.indexOf( 'http://' ) === -1 &&   document.URL.indexOf( 'https://' ) === -1;
 var ad_units = {
 ios : {
   banner: 'ca-app-pub-6944053263628084/2993763855', // votre référence  fournie par AdMob pour cette application
   interstitial: 'ca-app-pub-6944053263628084/5947230254' // votre référence fournie par AdMob pour cette application
 },
 android : {
   banner: 'ca-app-pub-6944053263628084/9994470251', // votre référence fournie par AdMob pour cette application
   interstitial: 'ca-app-pub-6944053263628084/3947936653' // votre référence fournie par AdMob pour cette application
 }
};
// le code s'adapte en fonction de la platforme
var admobid = ( /(android)/i.test(navigator.userAgent) ) ? ad_units.android : ad_units.ios;

if(IS_APP && AdMob) { // on vérifie que c'est un mobile et que AdMob est bien chargé
if(Math.floor(Math.random()*5) === 1) { // 1 fois sur 5 on affiche l'interstitial
  AdMob.prepareInterstitial( {
    adId:admobid.interstitial,
    autoShow:true}
  );
}
else {
  AdMob.createBanner( { // 4 fois sur 5 la bannière
    adId:admobid.banner,
    position:AdMob.AD_POSITION.BOTTOM_CENTER,
    autoShow:false,
    overlap:true}
  );
  }
 }

 //AdMob.showInterstitial(); // pour afficher la pub interstitial précédemment chargée
 // pour afficher la bannière publicitaire précédemment chargée
 //AdMob.hideBanner();
 AdMob.showBanner();
}

function showBanner(){
}

这是我的'Pub.js'

当我调用domLoaded()

时,警报(“已加载”)工作正常
$(document).ready(function(){
  domLoaded();
});

我制作了“phonegap local plugin add.admob.google”

我已经拥有了 在我的config.xml中

4 个答案:

答案 0 :(得分:1)

我测试了这个插件的很多不同的集成,它终于在昨天工作了。 我正在使用Cordova和Ionic Framework以及ngCordova(AngularJS),但它可以在普通的cordova安装中使用:)

我的解决方案: 1 - 按照以前的方式安装插件,例如使用CLI,然后只需:

angular.module('starter', ['ionic', 'starter.controllers', 'starter.services', 'ngCordova'])

.run(function($ionicPlatform) {
  $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();
    }

    /* Admob stuff */
    if(AdMob) AdMob.createBanner( {
      adId: 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxx', 
      position: AdMob.AD_POSITION.BOTTOM_CENTER, 
      autoShow: true } 
    );

  });
})

这是我的app.js文件的开头。在Admob评论下的这几行是足够的:)它只是关于离子结构。 请记住尝试使用真实设备或模拟器。

答案 1 :(得分:1)

是的,我可以像这样添加广告代码

function adSetter(){
alert(navigator.userAgent);
var admobid = {};
// select the right Ad Id according to platform
if( /(android)/i.test(navigator.userAgent) ) { 
    admobid = { // for Android
        banner: 'ca-app-pub-6869992474017983/9375997553',
        interstitial: 'ca-app-pub-6869992474017983/1657046752'
    };
} else if(/(ipod|iphone|ipad)/i.test(navigator.userAgent)) {
    admobid = { // for iOS
        banner: 'ca-app-pub-6869992474017983/4806197152',
        interstitial: 'ca-app-pub-6869992474017983/7563979554'
    };
} else {
    admobid = { // for Windows Phone
        banner: 'ca-app-pub-6869992474017983/8878394753',
        interstitial: 'ca-app-pub-6869992474017983/1355127956'
    };
}

if(AdMob) AdMob.createBanner( {
    adId:admobid.banner, 
    position:AdMob.AD_POSITION.BOTTOM_CENTER, 
    autoShow:true} );

}
  function onDeviceReady(){
  alert("device ready");
      adSetter();
  }


function domLoaded(){
 document.addEventListener("deviceready", onDeviceReady, false);
}

代码从下到上。 我已经使用警报来轻松地在设备上进行测试

这里有完整的资料来源:

http://pointdeveloper.com/how-to-add-banner-ads-to-phonegap-apps-using-admob-pro-plugin/

答案 2 :(得分:0)

确保执行onDeviceReady下的代码。

完成实施:

<html><head><title>Device Ready Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

// device APIs are available
function onDeviceReady() {
    // Now safe to use device APIs
    domLoaded();
}
</script>
</head>
<body onload="onLoad()">
</body>
</html>

谢谢, 马丹

答案 3 :(得分:0)

从您粘贴的javascript代码中,我猜您尝试使用我的AdMob插件:https://github.com/floatinghotpot/cordova-admob-pro

然后你的命令“phonegap local plugin add.admob.google”是错误的。

有效的admob插件ID是“com.google.cordova.admob”或“cordova-plugin-admobpro”,使用Cordova CLI是更好的选择。

因此,添加插件的有效命令是:

cordova plugin add com.google.cordova.admob

或者(如果Cordova v5.0 +,插件注册表正在迁移到npm,并且插件名称规则已更改):

cordova plugin add cordova-plugin-admobpro

使用此插件时出现任何问题,请在GitHub的项目主页中创建问题跟踪器。我很乐意帮忙。