在浏览器窗口中打开DFP广告

时间:2014-03-18 13:10:56

标签: mobile extjs sencha-touch

我能够在我的Sencha Touch应用中显示Google DFP广告,但是当我点击这些广告时,该应用内的链接会打开,使该应用无法使用,因为它现在是一个网页。无论如何我可以强制该应用程序使用浏览器或应用程序浏览器? Google DFP广告管理系统使用了iframe,我假设它可以使事情变得复杂。

谢谢。

2 个答案:

答案 0 :(得分:0)

我能够使用这样的脚本解决这个问题,它改变iframe内部的hrefs指向goto函数,该函数用InAppBrowser打开url。但必须首先将inappbrowser添加到项目中,我将在下面介绍。

function goto(url){
    var ref = window.open(url, '_blank', 'location=yes');
}

window.onload = function() {
    var link = window.frames['iframeName'].document.getElementsByTagName('a');

    for(i=0;i<link.length;i++) {
        link[i].href="javascript:window.top.goto('"+link[i].href+"');";
    }
}

我还必须按照位于此处的InAppBrowser文档的“访问功能”部分中的简单说明进行操作:https://cordova.apache.org/docs/en/3.0.0/cordova_inappbrowser_inappbrowser.md.html

答案 1 :(得分:0)

@ EvWill的回答适用于只是图片的广告。当广告是HTML5时,它不会起作用,因为hrefs可以位于多个位置,也可以使用Javascript打开。

在这种情况下,您无法拦截加载以将其定向到InAppBrowser或本机浏览器。

一种解决方法是使用支持DFP https://github.com/floatinghotpot/cordova-admob-pro

的AdMob插件

但这也有其局限性,因为您只能在某些位置显示广告。它们会叠加在您的应用上,而不是嵌入到应用中(因此您无法将广告滚动内嵌到您的内容中)