0

我有这个 Javacsript 代码,它检查是否有一个名为“google-ad”的 DIV,如果有,它会写入显示 Google Ad 的必要代码。

这在 Firefox、Chrome、Mac 上的 Safari 和 Android 等浏览器中效果很好。

但是,当我将此代码与Adob​​e 的 Phonegap Build捆绑在一起并将其部署到 iPhone 时,它​​的行为很奇怪。它会启动一个仅显示 Google 广告的浏览器窗口。为了继续使用我的应用程序,每次更改页面并加载新的 Google 广告时,我都必须关闭浏览器窗口才能返回应用程序。

为什么这段代码会在 iPhone 上的 Phonegap 应用程序之外启动浏览器窗口?

if(document.getElementById("google-ad")
    && document.getElementById("google-ad") !== null
    && document.getElementById("google-ad") !== "undefined")
    {

    if(userStatus.status == 0)
    {
        document.getElementById("centre").style.padding = "137px 0 12px 0";
        document.getElementById("header-container").style.margin = "-138px 0 0 0";
        document.getElementById("header-container").style.height = "132px";
        document.getElementById("header-username").style.top = "52px";

        document.getElementById("google-ad").style.height = "50px";
        document.getElementById("google-ad").style.width = "320px";
        document.getElementById("google-ad").style.backgroundColor = "#f0ebff";
        document.getElementById("google-ad").style.display = "block";

        window["google_ad_client"] = 'ca-pub-0000000000000000';
        window["google_ad_slot"]  = "00000000";
        window["google_ad_width"]  = 320;
        window["google_ad_height"]  = 50;

        window.adcontainer = document.getElementById('google-ad');
        window.adhtml = '';

        function mywrite(html)
        {
            adhtml += html;
            adcontainer.innerHTML = adhtml;
        };

        document.write_ = document.write;
        document.write = mywrite;

        script = document.createElement('script');
        script.src='http://pagead2.googlesyndication.com/pagead/show_ads.js';
        script.type='text/javascript';
        document.body.appendChild(script);
    }
4

1 回答 1

1

您面临的问题是因为 google adsens 正在使用 iframe,请参见 show_ads.js

e=["<iframe"],d;for(d in a)a.hasOwnProperty(d)&&ka(e,d+"="+a[d]);e.push('style="left:0;position:absolute;top:0;"')

当在 phonegap(通常是 webview)中发生这种情况时,它将打开新页面来显示它。有一些方法可以扭转局面,但我建议的最好方法是使用谷歌官方 adsense sdk进行 moile:

https://developers.google.com/mobile-ads-sdk/docs/

它是原生的,但您可以使用简单的插件轻松地将其连接到您的 html 应用程序(如果您愿意,我可以帮助您)

我认为您现在尝试做的事情会导致您的应用被苹果拒绝,因此请使用谷歌官方 sdk。

于 2012-09-30T20:57:22.407 回答