2017-01-29 21 views
3

私はappfeel cordova admobプラグインを使用しています。 https://github.com/appfeel/admob-google-cordovaコルドーバークリックでインタースティシャル広告を表示

私のコードバスアプリでクリック機能に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を、格子間を表示する方法の完全な例があります:

基本的に、あなたは何をすべきか、デバイスの準備ができたときに、ときクリックイベントこの事前ロードされた間隙を示しrequestInterstitialAdautoShowInterstitial: falseで広告を開始していますたまたま、最後の1が示されてきた新しい間質リロード:

$("#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(); 
    } 
}); 
:あなたのボタンイベントに続いて

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); 

関連する問題