admobpro AdMob.showInterstitial() 导致无限循环
admobpro AdMob.showInterstitial() causes infinite loop
admobpro AdMob.showInterstitial() 导致无限循环
我在 ionic/angularjs 应用程序中使用 admobpro,每次我调用 AdMob.showInterstitial() 时都会出现一个广告,但是当我单击 X 关闭广告时会出现一个新广告瞬间弹出。我最初是从 init 函数调用 showInterstitial 但认为这可能是问题所在,所以我创建了一个测试页面,当我点击一个按钮时会显示插页式广告,同样
结果。无限循环。
有没有其他人遇到过这个问题。
var admobid = {};
// select the right Ad Id according to platform
if( /(android)/i.test(navigator.userAgent) ) {
admobid = { // for Android
banner: 'ca-app-pub-6869992474017983/9375997553',
interstitial: 'ca-app-pub-6869992474017983/1657046752'
};
} else if(/(ipod|iphone|ipad)/i.test(navigator.userAgent)) {
admobid = { // for iOS
banner: 'ca-app-pub-6869992474017983/4806197152',
interstitial: 'ca-app-pub-6869992474017983/7563979554'
};
} else {
admobid = { // for Windows Phone
banner: 'ca-app-pub-6869992474017983/8878394753',
interstitial: 'ca-app-pub-6869992474017983/1355127956'
};
}
function adSetter(){
if(window.AdMob) AdMob.createBanner( {
isTesting:true,
adId:admobid.banner,
position:AdMob.AD_POSITION.BOTTOM_CENTER,
autoShow:true} );
if(window.AdMob) AdMob.prepareInterstitial( {adId:admobid.interstitial, autoShow:false} );
}
function onDeviceReady(){
adSetter();
}
function domLoaded(){
document.addEventListener("deviceready", onDeviceReady, false);
}
我的代码:
离子
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleLightContent();
}
//start admob
domLoaded();
//end admob
});
})
我看到你混合了一些代码。 ionic 的 $ionicPlatform.ready() 在 cordova 的设备就绪发生时调用,因此无需在 $ionicPlatform.ready()
中再次调用设备就绪
我这里有离子广告的完整演示 http://pointdeveloper.com/how-to-add-banner-ads-to-ionic-apps-using-admob-pro-plugin/
从代码看来没问题,应该 运行 您唯一需要确保的是 AdMob.showInterstitial() 没有在循环中被调用。
正如您提到的,您也尝试过使用按钮,我建议您创建一个新项目并重试。
admobpro AdMob.showInterstitial() 导致无限循环
我在 ionic/angularjs 应用程序中使用 admobpro,每次我调用 AdMob.showInterstitial() 时都会出现一个广告,但是当我单击 X 关闭广告时会出现一个新广告瞬间弹出。我最初是从 init 函数调用 showInterstitial 但认为这可能是问题所在,所以我创建了一个测试页面,当我点击一个按钮时会显示插页式广告,同样 结果。无限循环。
有没有其他人遇到过这个问题。
var admobid = {};
// select the right Ad Id according to platform
if( /(android)/i.test(navigator.userAgent) ) {
admobid = { // for Android
banner: 'ca-app-pub-6869992474017983/9375997553',
interstitial: 'ca-app-pub-6869992474017983/1657046752'
};
} else if(/(ipod|iphone|ipad)/i.test(navigator.userAgent)) {
admobid = { // for iOS
banner: 'ca-app-pub-6869992474017983/4806197152',
interstitial: 'ca-app-pub-6869992474017983/7563979554'
};
} else {
admobid = { // for Windows Phone
banner: 'ca-app-pub-6869992474017983/8878394753',
interstitial: 'ca-app-pub-6869992474017983/1355127956'
};
}
function adSetter(){
if(window.AdMob) AdMob.createBanner( {
isTesting:true,
adId:admobid.banner,
position:AdMob.AD_POSITION.BOTTOM_CENTER,
autoShow:true} );
if(window.AdMob) AdMob.prepareInterstitial( {adId:admobid.interstitial, autoShow:false} );
}
function onDeviceReady(){
adSetter();
}
function domLoaded(){
document.addEventListener("deviceready", onDeviceReady, false);
}
我的代码: 离子
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleLightContent();
}
//start admob
domLoaded();
//end admob
});
})
我看到你混合了一些代码。 ionic 的 $ionicPlatform.ready() 在 cordova 的设备就绪发生时调用,因此无需在 $ionicPlatform.ready()
中再次调用设备就绪我这里有离子广告的完整演示 http://pointdeveloper.com/how-to-add-banner-ads-to-ionic-apps-using-admob-pro-plugin/
从代码看来没问题,应该 运行 您唯一需要确保的是 AdMob.showInterstitial() 没有在循环中被调用。
正如您提到的,您也尝试过使用按钮,我建议您创建一个新项目并重试。