带有插件 admob-plus-cordova 的 Cordova 和 AdMob
Cordova and AdMob with plugin admob-plus-cordova
我是 Cordova 和移动应用程序开发的新手。我正在按照插件 admob-plus-cordova 的说明进行操作,以在此处显示横幅广告:
设备就绪异步事件侦听器正在触发,await admob.start()
之前的所有代码都成功运行,但 console.log('AdMob started.')
未成功运行。我已经完成了我在文档中看到的所有内容,但是 admon-start() 没有完成以显示广告。
附加信息
- 插件添加成功
- 模拟时我的控制台没有错误 Android。构建成功。
- 我的广告单元设置正确,但是,我首先进行测试,因此使用 Google 测试广告 ca-pub-xxx/yyy。
- 我的应用程序 ID 已在 AndroidManifest 中正确配置(插件为我完成)。
- 我的应用程序 build.gradle 文件实现了 play-services-ads:20.3.0(该插件也为我执行此操作)。
mavenCentral()
和 google()
加载到我的 repositories.gradle 文件中(插件也这样做)。
- 根据下面@Eric 的评论,我在
await.admob.start()
承诺中添加了一个陷阱。它也不执行捕获 - 在执行 conbsole.log(e). 时控制台中没有输出
AndroidManifest.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" />
index.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 启动”。在调用 admob.start()
.
之后
有什么想法吗?
Stack Overflow 的一位线下朋友向我展示了 chrome://inspect(显然,它与使用 Cordova 时的普通检查器不同 - 我不知道为什么)。它向我显示了一个在普通代码检查器中不存在的错误。解决该错误后,问题就解决了。
我是 Cordova 和移动应用程序开发的新手。我正在按照插件 admob-plus-cordova 的说明进行操作,以在此处显示横幅广告:
设备就绪异步事件侦听器正在触发,await admob.start()
之前的所有代码都成功运行,但 console.log('AdMob started.')
未成功运行。我已经完成了我在文档中看到的所有内容,但是 admon-start() 没有完成以显示广告。
附加信息
- 插件添加成功
- 模拟时我的控制台没有错误 Android。构建成功。
- 我的广告单元设置正确,但是,我首先进行测试,因此使用 Google 测试广告 ca-pub-xxx/yyy。
- 我的应用程序 ID 已在 AndroidManifest 中正确配置(插件为我完成)。
- 我的应用程序 build.gradle 文件实现了 play-services-ads:20.3.0(该插件也为我执行此操作)。
mavenCentral()
和google()
加载到我的 repositories.gradle 文件中(插件也这样做)。- 根据下面@Eric 的评论,我在
await.admob.start()
承诺中添加了一个陷阱。它也不执行捕获 - 在执行 conbsole.log(e). 时控制台中没有输出
AndroidManifest.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" />
index.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 启动”。在调用 admob.start()
.
有什么想法吗?
Stack Overflow 的一位线下朋友向我展示了 chrome://inspect(显然,它与使用 Cordova 时的普通检查器不同 - 我不知道为什么)。它向我显示了一个在普通代码检查器中不存在的错误。解决该错误后,问题就解决了。