2017-01-29 4 views
3

Я использую appfeel cordova admob plugin. https://github.com/appfeel/admob-google-cordovaCordova Show InterstitialAd on Click

Я хочу показать InterstitialAd на функцию щелчка в моих приложениях cordova. Обычно с настройками по умолчанию, в моем приложении запускается InterstitialAd. Но при нажатии кнопки должен показывать InterstitialAd.

Мои параметры по умолчанию

admob.setOptions({ 
      publisherId: "xxxx-myidxxx", // Required 
      interstitialAdId: "xxx-myidxxx", // Optional 
      tappxIdiOs: "/XXXXXXXXX/Pub-XXXX-iOS-IIII", // Optional 
      tappxIdAndroid: "/XXXXXXXXX/Pub-XXXX-Android-AAAA", // Optional 
      tappxShare: 0.5, 
      adSize: admob.AD_SIZE.SMART_BANNER, 
      bannerAtTop: false, 
      overlap: false, 
      offsetStatusBar: false, 
      isTesting: true, 
      adExtras : {}, 
      autoShowBanner: true, 
      autoShowInterstitial: false // Optional 
}); 

Я могу вызвать функцию этого типа

$("#myButton").on("click", function() { 
      admob.requestInterstitial(); 
      admob.showInterstitialAd(); 
}); 

Я пытаюсь вызвать функцию этого типа, но это не работает.

Как я могу позвонить функции при нажатии кнопки?

ответ

1

Пожалуйста, смотрите здесь: https://github.com/appfeel/admob-google-cordova/wiki/showInterstitialAd, есть полный пример того, как показать межстраничную:

В основном то, что вы делаете, это начать рекламу с autoShowInterstitial: false, requestInterstitialAd когда устройство готово, показать это предварительно загруженным интерстициальные, когда нажмите событие происходит и перезагрузите новый интерстициальные, когда последний был показан:

var isAppForeground = true; 
var isInterstitialReady = true; 

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

function onAdClosed(e) { 
    if (isAppForeground) { 
    if (e.adType === admob.AD_TYPE.INTERSTITIAL) { 
     isInterstitialReady = false; 
     admob.requestInterstitialAd(); 
    } 
    } 
} 

function onPause() { 
    if (isAppForeground) { 
    admob.destroyBannerView(); 
    isAppForeground = false; 
    } 
} 

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

// optional, in case respond to events 
function registerAdEvents() { 
    document.addEventListener(admob.events.onAdLoaded, onAdLoaded); 
    document.addEventListener(admob.events.onAdClosed, onAdClosed); 

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

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('AdMobAds plugin not ready'); 
    } 
} 

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

    // display a banner at startup 
    admob.createBannerView(); 

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

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

Тогда в вашей кнопки события:

$("#myButton").on("click", function() { 
    if (isInterstitialReady) { 
     admob.showInterstitialAd(); 
    } else { 
     // We do not have an interstitial ready, try to request a new one 
     // It can be mainly because of 3 reasons: 
     // - Can't connect with Admob (i.e. no connectivity available) 
     // - Admob does not have available any interstitials at this moment 
     // - Not enought time between last requestInterstitialAd() and myButton.click() 
     admob.requestInterstitialAd(); 
    } 
});