javascript - 重定向到 Phonegap 中的新页面后,AdMob 未定义

标签 javascript cordova admob phonegap-plugins cordova-admob

我添加了 AdMob Plugin Pro到我的 Phonegap 应用程序。我按照示例代码并将以下代码放入我的应用程序主页中:

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 时,问题发生了。我尝试了几种方法,但都不起作用。

以下是我的应用程序的一些背景信息:

  1. 当用户单击链接时,我的应用程序将重新加载页面。例如,如果用户在主页中单击“设置”按钮,则整个页面将重新加载到“setting.html”
  2. 操作 DOM 和内容的脚本始终放在 <body> 的最后一行。

所以这是我尝试过的:

  1. 复制相同的 onDeviceReady()addEventListner()上面并放入另一个页面。

    • 我发现 deviceready 事件在第二页中没有再次触发。因此,当然不会再显示插页式广告。
  2. 只需复制 AdMob.prepareInterstitial( {adId:admobid.interstitial, autoShow:true}到新页面并在页面加载后执行

    • 我发现 AdMob 变成了 undefined

所以我想知道我是否错过了什么或者我做错了什么?

谢谢!

最佳答案

我是 this cordova-admob plugin 的作者.

@Simon stated before ,您最好的机会是迁移到 SPA。也就是说,如果这是不可能的,也许您可​​以尝试一个丑陋的解决方法,但这很大程度上取决于您如何实现应用程序:

尝试拦截 index.html 中的每个链接并尝试通过 ajax 加载它。通过 ajax 加载后,您可以加载 index.html 正文中的内容。确保评估新内容中的每个脚本。在这里您可以找到有关我如何实现的示例:http://plnkr.co/edit/ew21klKYRcfvjX8wrAY1

它是用纯 JavaScript 实现的,但如果您使用 jQuery,那么它可以让您的生活更轻松 $(document.body).load(...)

关于javascript - 重定向到 Phonegap 中的新页面后,AdMob 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37246436/

相关文章:

android - 需要通过 Facebook 和 Twitter 验证用户(PhonegapAndroid)

android - admob 中自定义插页式广告的图像尺寸

android - 在没有按下按钮的情况下添加插页式 admob 广告

ios - Admob GADBannerView,当 UINavgiationController 存在时不显示

java - 未显示 ActionError

javascript - 使用jquery获取点击元素的id

javascript - 如何使用 css/js 为表中的每一行创建不同长度的列?

android - Ext.device.notification.show 在 Phonegap 中创建错误 - Sencha Touch 2

javascript - Bootstrap 表不能与 ng-repeat 一起正常工作

ios - 以下构建命令失败 : CompileC