我是全新的 cordova 和移动的应用程序开发。我下面的插件admob-plus-cordova的指示,显示一个横幅广告,在这里:
- https://admob-plus.github.io/docs
- https://admob-plus.github.io/docs/cordova/ads/banner
deviceready异步事件侦听器正在触发,并且await admob.start()
之前的所有代码都成功运行,但console.log('AdMob started.')
不成功。我已完成文档中所能看到的所有操作,但为了显示广告,adm-start()未完成。
其他信息
- 已成功添加插件。
- 在我的控制台模拟Android时没有错误。构建成功。
- 我的广告单元设置正确,但是,我首先进行测试,因此使用Google测试广告ca-pub-xxx/yyy。
- 我的应用程序ID在AndroidManifest中正确配置(插件为我做了这件事)。
- 我的app build.gradle文件实现了play-services-ads:20.3.0(插件也为我实现了这一点)。
mavenCentral()
和google()
加载到我的存储库.gradle文件中(插件也会这样做)。- 在下面@Eric的评论中,我在
await.admob.start()
promise中添加了一个catch,它也不执行catch--在执行conbsole.log(e)时,控制台中没有输出。
Android信息清单. xml
<activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:excludeFromRecents="true" android:name="com.google.android.gms.ads.AdActivity" android:noHistory="true" />
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-mypublisher~informationhere" />
<meta-data android:name="com.google.android.gms.ads.DELAY_APP_MEASUREMENT_INIT" android:value="true" />
索引. js
let banner
document.addEventListener('deviceready', async () => {
console.log('Running cordova-' + cordova.platformId + '@' + cordova.version + '. Starting AdMob');
document.getElementById('deviceready').classList.add('ready');
await admob.start().then(() => {
console.log('AdMob started.');
}).catch(e => console.log(e));
banner = new admob.BannerAd({
adUnitId: 'ca-app-pub-3940256099942544/6300978111', // THIS IS A GOOGLE TEST AD
position: 'top'
})
banner.config({
marginTop: 10,
marginBottom: 5,
backgroundColor: 'black'
})
banner.on('impression', async (evt) => {
await banner.hide()
})
await banner.show()
console.log('Showing ad.')
}, false)
我不禁想到我需要在HTML文件中为我的应用创建一个容器,但在Google搜索时我没有找到任何指示。就目前而言,我希望在调用admob.start()
后看到“AdMob started.”
有什么想法吗?
1条答案
按热度按时间vsmadaxz1#
Stack Overflow的一个离线朋友向我展示了chrome://inspect(显然,在使用Cordova时,它与普通的检查器不一样-我不知道为什么)。它向我展示了一个普通代码检查器中不存在的错误。在解决了该错误后,问题得到了解决。