在设备浏览器中打开InMobi iframe链接(phonegap build)

Dom*_*Dom 6 html javascript jquery-mobile phonegap-build inmobi

我使用jQuery Mobile创建了一个移动应用程序,并通过PhoneGap Build v2.5为iOS和Android构建了它.然后我使用他们的javascript api成功添加了inmobi广告.广告显示效果不错,但是当广告接管应用时用户点击广告时会出现问题.这不是Android中的问题,因为用户有后退按钮,但在iOS设备上,用户卡住了,无法返回我的应用程序.

我已成功设置我的应用程序中包含的所有外部链接,通过将所有URL传递给此函数在设备的浏览器中打开:

function openNewBrowser(url) {
    window.open(encodeURI(url), '_system');
    return false;
}
Run Code Online (Sandbox Code Playgroud)

但是inmobi广告在我的应用程序中的iframe内部,我无法控制他们如何通过他们的网址.我还尝试绑定jQuery Mobile以捕获所有pagebeforechange事件并使用以下方法相应地处理它们:

$(document).bind("pagebeforechange", function(e, data) {
    if(typeof data.toPage === 'object' || 
        data.toPage.indexOf("index.html#") >= 0) {
        //internal URL so do nothing
    } else {
        //external URL so send to openNewBrowser
        console.log('page is external');
        openNewBrowser(data.toPage);
        e.stopPropagation();
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

但是"别的"永远不会被绊倒.inmobi广告只是接管应用程序,用户被迫杀死并重新启动应用程序回到可用状态.我应该听一个不同的事件吗?

以下是我调用inmobi广告的方式:

var inmobi_conf = {
    siteid : "*******mySiteId*******",
    slot : "15",
    manual: true,
    test: true,
    targetWindow: "_blank"
};
Run Code Online (Sandbox Code Playgroud)

我会(并且已经尝试)将"targetWindow"设置为_system,但唯一有效的参数是"_blank"和"_top".

有没有人知道如何获得iFrame链接(你不能设置为_system)在本机浏览器中打开而不是接管应用程序或获取inmobi广告不接管应用程序?

Pau*_*tte 0

我最终通过在 config.xml 中进行设置来解决这个问题。这是一个糟糕的解决方法,但它是我拥有的最好的解决方法。希望其他人能想出更好的东西。

使用虚拟对象iframe作为目标也可以:

/*
document.body.insertAdjacentHTML
  ("beforeend", 
    "<iframe id='myframe' width='0' height='0'></iframe>"
  )
*/

document.body.appendChild
  (
  document.createElement("iframe")
  ).setAttribute("id", "myframe")

var inmobi_conf = {
    siteid : "*******mySiteId*******",
    slot : "15",
    manual: true,
    test: true,
    targetWindow: "myframe"
};
Run Code Online (Sandbox Code Playgroud)

参考