2016-08-25 80 views
0

我正在用floatinghotpot AdMobpro插件开发一个Cordova应用程序。 应用程序有这些代码:AdMob插件 - 如何实现插页式第一页,然后是HTML页面

的index.html

<a href=“mainpage.html" id="btn_prepare" class="pure-button pure-button-primary">GO TO APP</a> 

在admobshow.js,我有这些片断:

$('#btn_prepare').click(function(){ 
    AdMob.prepareInterstitial({ 
    adId:admobid.interstitial,  

    }); 

     AdMob.showInterstitial(); 
     window.open($(this).attr('href')); 
}); 

(代码是从这里取:https://github.com/floatinghotpot/cordova-admob-pro/blob/master/test/index.html

我想要这样的事情发生: 1.)用户点击转到APP,插件显示插页式。 2.)当用户关闭插页式广告时,mainpage.html应该打开。

但是,现在发生的情况是: 1.)首先打开mainpage.html,然后在几秒钟内显示插页式广告。

我想要显示的mainpage.html示出的间隙之后。 (或者当插页式广告被采用时)。我不想让mainpage.html自动显示。

有人可以帮助我如何调整上面的代码?

+0

此峰从谷歌介绍了什么是我想要的:https://storage.googleapis.com/support-kms-prod/91E0E29ADFA1A1BF42097E0699CC491BE874 –

回答

0

您需要一个准备间质性AdMob.prepareInterstitial用户点击这个按钮的时候被称为一段时间的代码。该插件需要一些时间来准备,因此当您拨打AdMob.showInterstitial()时,它无法立即显示。

当用户进入页面例如只需准备的间隙。

+0

我的代码工作。 AdMob.prepareInterstitial或AdMob.showInterstitial()中没有问题。问题是:出现插页式广告,但在加载mainpage.html后出现,但我希望首先加载插页式广告。 mainpage.html应该晚点出来。 –

0
在这个问题上的一些代码和想法就如何落实

见响应: https://stackoverflow.com/a/31187541/4025963

编辑

假设cordova-admob插件,基本的想法可能是这一个:

<a onclick="showInterstitial()" id="btn_prepare" class="pure-button pure-button-primary">GO TO APP</a> 

而在你的js代码:

var isAppForeground = true; 
var isShowMainOnCloseAd = false; 
var isMainAlreadyShown = false; 
var isInterstitialAvailable = false;  

function showInterstitial() { 
    if (isInterstitialAvailable) { 
    admob.showInterstitialAd(); 
    } else { 
    showMain(function() { 
     isMainAlreadyShown = true; 
    }); 
    } 
} 

function initAds() { 
    if (admob) { 
    var adPublisherIds = { 
     ios : { 
     banner : "ca-app-pub-XXXXXXXXXXXXXXXX/BBBBBBBBBB", 
     interstitial : "ca-app-pub-XXXXXXXXXXXXXXXX/IIIIIIIIII" 
     }, 
     android : { 
     banner : "ca-app-pub-XXXXXXXXXXXXXXXX/BBBBBBBBBB", 
     interstitial : "ca-app-pub-XXXXXXXXXXXXXXXX/IIIIIIIIII" 
     } 
    }; 

    var admobid = (/(android)/i.test(navigator.userAgent)) ? adPublisherIds.android : adPublisherIds.ios; 

    admob.setOptions({ 
     publisherId:   admobid.banner, 
     interstitialAdId:  admobid.interstitial, 
     autoShowInterstitial: false 
    }); 

    registerAdEvents(); 

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

function onAdLoaded(e) { 
    if (isAppForeground) { 
    if (e.adType === admob.AD_TYPE.INTERSTITIAL) { 
     isInterstitialAvailable = true; 
    } 
    } 
} 

function onAdOpened(e) { 
    if (e.adType === admob.AD_TYPE.INTERSTITIAL && !isMainAlreadyShown) { 
    isShowMainOnCloseAd = true; 
    } 
} 

function onAdClosed(e) { 
    if (e.adType === admob.AD_TYPE.INTERSTITIAL && isShowMainOnCloseAd) { 
    isShowMainOnCloseAd = false; 
    if (!isMainAlreadyShown) { 
     showMain(function() { 
     isMainAlreadyShown = true; 
     }); 
    } 
    } 
} 

function onPause() { 
    if (isAppForeground) { 
    isAppForeground = false; 
    } 
} 

function onResume() { 
    if (!isAppForeground) { 
    setTimeout(admob.requestInterstitialAd, 1); 
    isAppForeground = true; 
    } 
} 

function registerAdEvents() { 
    document.addEventListener(admob.events.onAdLoaded, onAdLoaded); 
    document.addEventListener(admob.events.onAdOpened, onAdOpened); 
    document.addEventListener(admob.events.onAdClosed, onAdClosed); 

    document.addEventListener("pause", onPause, false); 
    document.addEventListener("resume", onResume, false); 
} 

function onDeviceReady() { 
    document.removeEventListener('deviceready', onDeviceReady, false); 
    initAds(); 

    // request an interstitial 
    admob.requestInterstitialAd(); 
} 

document.addEventListener("deviceready", onDeviceReady, false); 
+0

我想我没有正确说明我的问题。换言之,1.)我已经能够成功实施AdMob插页式广告,如我之前所述的代码所示。他们在工作。 2.)我的问题是出现的顺序; html页面在插页式广告前出现,而不是稍后显示。 3.)有人可以先给我一个间接工作的JS代码,然后是html页面吗? –

+0

您可以使用admob事件,参见[cordova-admob plugin wiki](https://github.com/appfeel/admob-google-cordova/wiki/Events#admobeventsonadclosed)。在引用的问题中,您可以看到如何使用事件 – Miquel

+0

感谢您的努力,但可悲的是,这并没有解决问题。我可以实施插页式广告,所以在那里没有问题。我的代码:GO TO APP。按下按钮后,我希望Interstitial首先出现,然后是mainpage.html。现在,mainpage.html首先出现,然后出现Interstitial。我如何撤销订单? –