2016-08-25 83 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。我如何撤銷訂單? –