android - 如何将 AdMob 广告集成到适用于 Android 和 iOS 的 Cordova 项目中?

标签 android ios cordova plugins admob

我正在使用最新版本 (6) 在 Cordova 中编写一个多平台应用程序,并且在尝试让 AdMob 广告在 iOS 和 Android 上运行时遇到了很多麻烦。我已经下载了 AdMob 的代码示例,但是从 javascript 中控制它让我很难过。我对插件架构有所了解,但我似乎无法让它工作。

请帮忙。

最佳答案

您最好的选择是为此使用预制插件。正如您所提到的,我有一个使用 Cordova 6 在 iOS 和 Android 上都适用于我的经验。

完整说明在这里 https://github.com/sunnycupertino/cordova-plugin-admob-simple或这里 https://www.npmjs.com/package/cordova-plugin-admob-simple

安装:

cd yourappfolder

cordova plugin add cordova-plugin-admob-simple

如果您使用的是 Eclipse,请将 google-play-services.jar 复制到 libs 文件夹中。

将以下行添加到 list 文件中,就在结束应用程序标记之前
<meta-data android:name="com.google.android.gms.version" android:value="8487000" />

现在在您的 javascript 中,添加以下函数:
//initialize the goodies 
function initAd(){
        if ( window.plugins && window.plugins.AdMob ) {
            var ad_units = {
                ios : {
                    banner: 'ca-app-pub-xxxxxxxxxxx/xxxxxxxxxxx',       //PUT ADMOB ADCODE HERE 
                    interstitial: 'ca-app-pub-xxxxxxxxxxx/xxxxxxxxxxx'  //PUT ADMOB ADCODE HERE 
                },
                android : {
                    banner: 'ca-app-pub-xxxxxxxxxxx/xxxxxxxxxxx',       //PUT ADMOB ADCODE HERE 
                    interstitial: 'ca-app-pub-xxxxxxxxxxx/xxxxxxxxxxx'  //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: false, // receiving test ad 
                autoShow: false // 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 
        });
    }

//display the banner 
function showBannerFunc(){
    window.plugins.AdMob.createBannerView();
}
//display the interstitial 
function showInterstitialFunc(){
    window.plugins.AdMob.showInterstitialAd();
}

从 onDeviceReady() 调用 init()

调用 showInterstitialFunc() 和 showBannerFunc() 来展示广告。

请记住,您必须稍等片刻才能显示插页式广告,因为加载需要时间。

希望这可以帮助。

关于android - 如何将 AdMob 广告集成到适用于 Android 和 iOS 的 Cordova 项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36269166/

相关文章:

java - onCreateView() 方法请求父类(super class)调用

Android 网页 View : How to copy selected text in webview.

android - 如何设置完全脱机的Cordova构建?

android - 在 mac 上创建新的第一个 phonegap Android 项目返回错误 : ANDROID_BIN ="${ANDROID_BIN:=$( which android )}" exited with 1

cordova - Phonegap Geolocation - 我如何判断我的用户是否靠近地标?

android - 填充完整的 Canvas ,但保留边界填充区域,因为它像圆形、矩形

android - 尝试在空对象引用上调用虚拟方法 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)'

ios - 如何在IOS中用横向图像填充背景?

javascript - PhoneGap : Get orientation of captured video?

ios - 如何从视频网址生成缩略图?