Phonegap cordova-plugin-admob-simple无法获取任何广告

时间:2017-05-09 18:47:46

标签: plugins admob phonegap

我在智慧结束。我无法让这个插件工作。我已经跟着PhoneGap Cordova Admob plugin not working处的说明(当你向下滚动到引用这个插件的答案时。)我使用最近的phonegap cli运行phonegap服务。我甚至创建了一个空页面(debug.html)以确保没有其他代码受到干扰。

到目前为止我做了什么:

  • 确保插件存在于main config.xml
  • 在web broswer中检查Admob.js文件实际上是从插件文件夹加载的。
  • 确保插件在platforms / android / android.json
  • 中引用
  • 确保我在页面上链接了cordova.js
  • 确保插件位于platforms / android / assets / www / plugins
  • 添加了平台android
  • 该插件显示在phonegap插件列表中
  • 安装插件和/或运行phonegap serve时没有错误
  • 尝试使用isTesting true和false
  • 确保deviceready实际上正在解雇
  • 检查并重新检查我的Admob代码。

我总是收到'admob plugin not ready'的警告。

我尝试将“window.plugins.AdMob”行更改为AdMob,plugins.Admob,navigator.Admob,window.Admob。我仍然得到这个错误。

当我注释掉该检查(“if(window.plugins&& window.plugins.AdMob){”)并强制它运行代码时,没有任何反应。我在命令行上没有错误,没有任何错误,我可以找到调试。

这是我的代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="format-detection" content="telephone=no" />
    <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
    <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="msapplication-tap-highlight" content="no" />
    <title>Debug Page</title>
    <style>
        .bodyStyle{
            font-size: 32px;
        }
    </style>
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script> 

</head>
<body >
<script>
    function onDeviceReady() {
        console.log("DEVICE READY");
//initialize the goodies

        if ( window.plugins && window.plugins.AdMob ) {
            var ad_units = {
                ios : {
                    banner: 'ca-app-pub-1631005955280974/1599263468',       //PUT ADMOB ADCODE HERE
                    interstitial: 'ca-app-pub-1631005955280974/6029463060'  //PUT ADMOB ADCODE HERE
                },
                android : {
                    banner: 'ca-app-pub-1631005955280974/1599263468',       //PUT ADMOB ADCODE HERE
                    interstitial: 'ca-app-pub-1631005955280974/6029463060'  //PUT ADMOB ADCODE HERE
                }
            };
            var admobid = ( /(android)/i.test(navigator.userAgent) ) ? ad_units.android : ad_units.ios;

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

            registerAdEvents();
            window.plugins.AdMob.createInterstitialView();  //get the interstitials ready to be shown
            window.plugins.AdMob.requestInterstitialAd();

        } else {
            alert( 'admob plugin not ready' );
        }

//functions to allow you to know when ads are shown, etc.
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(){
            window.plugins.AdMob.createInterstitialView();          //REMOVE THESE 2 LINES IF USING AUTOSHOW
            window.plugins.AdMob.requestInterstitialAd();           //get the next one ready only after the current one is closed
        });
    }
    function showBannerFunc(){
    AdMob.createBannerView();
}
//display the interstitial
function showInterstitialFunc(){
    AdMob.showInterstitialAd();
}

    document.addEventListener("deviceready", onDeviceReady, false);
</script>
<button type='button' onclick='showBannerFunc();'>SHOW BANNER</button>
<br/><br/>
<button type='button' onclick='showInterstitialFunc();'>SHOW INTER</button>
</body>
</html>

它位于主config.xml中

<plugin name="cordova-plugin-admob-simple" spec="~3.3.3" />

拜托,我已经在这里工作了两个多星期,我用Google搜索并搜索了所有可能的内容。我必须阅读至少100页寻求帮助,不知道还有什么可以尝试。我发现的一切,我都试着无济于事。没有什么不同甚至发生,它只是不显示任何类型的广告。横幅或其他。即使我点击按钮。请帮帮我。谢谢。

2 个答案:

答案 0 :(得分:0)

好的,我终于明白了。我正在使用Phonegap Serve。这不支持插件,或至少第三方插件。你必须使用Phonegap运行。

答案 1 :(得分:0)

我目前正处于你2周前的舞台上。我已经为Admob测试了不同的插件,但没有显示广告。 不幸的是,即使我正在生成一个apk文件并在移动设备上运行它也没有任何反应。 我已经使用了您的代码,但在按下“显示横幅”按钮时没有显示任何内容。

我使用了虚拟ID(ca-app-pub-3940256099942544/6300978111)以及我自己的ID。

也许您可以查看我的问题并提出建议: Using AdMob and Cordova - ad is not displayed

谢谢,

彼得