广告没有显示,但为什么?

时间:2014-08-26 04:42:16

标签: android cordova admob phonegap-plugins

我正在使用phonegap开发一个Android应用程序。我已成功添加了google-play-services库项目。现在我想将AdMob整合到广告中。我已按照这些步骤进行https://developers.google.com/mobile-ads-sdk/docs/。我的项目已经成功构建并运行,但广告没有显示在那里。

我在index.html中添加了AdMob Cordova插件和SCRIPT。这是我的index.html

    <!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="format-detection" content="telephone=no" />
        <!--<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />-->
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" />
        <!--<link rel="stylesheet" type="text/css" href="css/index.css" />-->
        <!-- <link href="lib/ionic/css/ionic.css" rel="stylesheet"> -->
        <link href="css/app.css" rel="stylesheet">
        <!-- <link href="css/leaflet.css" rel="stylesheet">
        <link href="css/leaflet.draw.css" rel="stylesheet">
        <link href="css/nv.d3.css" rel="stylesheet"> -->
        <!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above
        <link href="css/ionic.app.css" rel="stylesheet">
        -->
        <style type="text/css">
          .css-form input.ng-invalid.ng-dirty {
            /*background-color: #FA787E;*/
              outline: none;
              box-shadow:0px 0px 7px #FA787E;
              border-color:#FA787E;
          }

          .css-form input.ng-valid.ng-dirty {
            /*background-color: #78FA89;*/
              outline: none;
              box-shadow:0px 0px 7px #78FA89;
              border-color:#78FA89;
          }


        </style>
        <!-- ionic/angularjs js -->
        <script src="js/leaflet.js"></script>
        <script src="js/d3.js"></script>
        <script src="js/nv.d3.js"></script>
        <script src="lib/ionic/js/ionic.bundle.js"></script>
        <script src="js/ng-cordova.js"></script>
        <script src="js/geolocation.js"></script>

        <script src="js/angularjs-nvd3-directives.js"></script>
        <script src="js/angular-cookies.js"></script>

        <script src="js/angular-resource.js"></script>
        <script src="js/angular-leaflet-directive.min.js"></script>
        <script src="js/leaflet.draw.js"></script>

    </head>
    <body ng-app="starter">
            <ion-nav-view animation="slide-left-right-ios7">
            </ion-nav-view>

        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="deviceinfo.js"></script>
        <script type="text/javascript" src="telephonenumber.js"></script>
        <script type="text/javascript" src="sharedprefs.js"></script>
        <!-- your app's js -->
        <script type="text/javascript" src="js/jquery-1.10.1.min.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
        <script src="js/services.js"></script>
        <script src="js/controllers.js"></script>
        <script src="js/app.js"></script>
        <script type="text/javascript" src="js/geolib.js"></script>
        <script type="text/javascript" src="js/moment.min.js"></script>
        <script type="text/javascript">
        Date.prototype.deductHours= function(h){
            this.setHours(this.getHours()-h);
            return this;
        }
        Date.prototype.addHours= function(h){
            this.setHours(this.getHours()+h);
            return this;
        }
    </script>
    <script>
        function onDocLoad() {
                    initApp();                    
        }

        function initApp() {
            initAd();

        console.log("initApp is running");
            // display the banner at startup
            window.plugins.AdMob.createBannerView();
        }
        function initAd(){
            if ( window.plugins && window.plugins.AdMob ) {
                console.log("initAd is running");
                var ad_units = {
                    ios : {
                        banner: 'ca-app-pub-2899535788334936/6458250207',
                        interstitial: 'ca-app-pub-2899535788334936/3672907408'
                    },
                    android : {
                        banner: 'ca-app-pub-2899535788334936/6458250207',
                        interstitial: 'ca-app-pub-2899535788334936/3672907408'
                    }
                };
                var admobid = ( /(android)/i.test(navigator.userAgent) ) ? ad_units.android : ad_units.ios;

                window.plugins.AdMob.setOptions( {
                    publisherId: admobid.banner,
                    interstitialAdId: admobid.interstitial,
                    bannerAtTop: false, // set to true, to put banner at top
                    overlap: false, // set to true, to allow banner overlap webview
                    offsetTopBar: false, // set to true to avoid ios7 status bar overlap
                    isTesting: false, // receiving test ad
                    autoShow: true // auto show interstitial ad when loaded
                });

                registerAdEvents();

            } else {
                alert( 'admob plugin not ready' );
            }
        }
       function registerAdEvents() {
            document.addEventListener('onReceiveAd', function(){});
            document.addEventListener('onFailedToReceiveAd', function(data){});
            document.addEventListener('onPresentAd', function(){});
            document.addEventListener('onDismissAd', function(){ });
            document.addEventListener('onLeaveToAd', function(){ });
            document.addEventListener('onReceiveInterstitialAd', function(){ });
            document.addEventListener('onPresentInterstitialAd', function(){ });
            document.addEventListener('onDismissInterstitialAd', function(){ });
        }
        function onResize() {
            var msg = 'web view: ' + window.innerWidth + ' x ' + window.innerHeight;
            document.getElementById('sizeinfo').innerHTML = msg;
        }
        </script>
    </body>
</html>

谁能告诉我实际上我错过了什么?我认为我的项目无论如何都找不到插件。但我也在config.xml中添加了插件。那么什么是错的?请回复!!

3 个答案:

答案 0 :(得分:1)

无需为GCM and AdMob添加单独的sdk,google play服务包含您可以使用的sdk。使用包含两个sdk包的最新android google play services

答案 1 :(得分:0)

您正在使用旧方法,实际上,Google已声明更新的google_play_services库,其中包含您的所有个人库。所以不要使用单独的库,只需更新google_play_service lib并继续...... !!!

答案 2 :(得分:0)

好的,我的问题解决了。该问题与google-play-sevices配置无关。所以我无法接受任何答案。谢谢大家帮帮我。至少我确信我在 google-play-services admob 配置中没有错。