我已将AdMob Plugin Pro添加到我的Phonegap应用程序中。我按照示例代码,并把我的应用程序的主页下面的代码:重定向到Phonegap中的新页面后,AdMob未定义
function onDeviceReady() {
var admobid = {};
if(/(android)/i.test(navigator.userAgent)) {
admobid = { // for Android
banner: 'ca-pub-{key hidden}'
interstitial: 'ca-pub-{key hidden}'
};
} else if(/(ipod|iphone|ipad)/i.test(navigator.userAgent)) {
admobid = { // for iOS
banner: 'ca-pub-{key hidden}'
interstitial: 'ca-pub-{key hidden}'
};
}
if(window.AdMob) AdMob.prepareInterstitial({adId:admobid.interstitial, autoShow:true});
}
document.addEventListener('deviceready', onDeviceReady, false);
上面的代码工作和间质性广告显示出来,但是当我尝试在另一页再次调用AdMob的问题发生。我尝试了几种方法,但都没有工作。
这里是我的应用程序的一些背景资料:
- 我的应用程序将重新加载一个链接页面时用户点击。例如,如果用户处于主页并单击“设置”按钮,整个页面将重新加载到“setting.html”
- 操纵DOM和内容的脚本始终放在
<body>
的最后一行
因此,这里是我的尝试:
复制相同
onDeviceReady()
和addEventListner()
上面,放在另一个页面-
。
- 我发现在第二页中deviceready事件没有再次被触发。因此当然不再显示插页式广告。
只需将
AdMob.prepareInterstitial({adId:admobid.interstitial, autoShow:true}
复制到新的页面,加载页面后执行- 我发现了什么,AdMob广告成为
undefined
- 我发现了什么,AdMob广告成为
所以我想知道我错过了什么,或者我做错了什么?
谢谢!
恐怕也无法改变因为这是另一个程序员创建的项目,并且截止日期不允许我现在重构该程序,所以在此阶段将其添加到SPA。所以我必须先以丑陋的方式去做。我尝试在每个页面中包含'cordova.js',但仍然未定义AdMob。我想念什么?谢谢! –
您可能必须收听设备,因为每个页面加载本质上都会重新开始。在搬到SPA之前,你的经历将会非常糟糕。 –
我试图听'deviceready',但没有运气。似乎事件在第二页中甚至没有发生。 –