Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在设备浏览器中打开InMobi iframe链接(phonegap构建)_Javascript_Html_Jquery Mobile_Phonegap Build_Inmobi - Fatal编程技术网

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

Javascript 在设备浏览器中打开InMobi iframe链接(phonegap构建),javascript,html,jquery-mobile,phonegap-build,inmobi,Javascript,Html,Jquery Mobile,Phonegap Build,Inmobi,我使用jQuery mobile创建了一个移动应用程序,并通过PhoneGap Build v2.5为iOS和Android构建了它。然后,我使用他们的javascript api成功地添加了inmobi广告。广告显示得很好,但当用户在广告接管应用程序时单击广告时,问题就出现了。这在安卓系统中不是一个问题,因为用户有一个后退按钮,但在iOS设备上,用户被卡住了,无法返回到我的应用程序 通过将所有url传递到此函数,我已成功设置应用程序中包含的所有外部链接,以便在设备浏览器中打开: functio

我使用jQuery mobile创建了一个移动应用程序,并通过PhoneGap Build v2.5为iOS和Android构建了它。然后,我使用他们的javascript api成功地添加了inmobi广告。广告显示得很好,但当用户在广告接管应用程序时单击广告时,问题就出现了。这在安卓系统中不是一个问题,因为用户有一个后退按钮,但在iOS设备上,用户被卡住了,无法返回到我的应用程序

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

function openNewBrowser(url) {
    window.open(encodeURI(url), '_system');
    return false;
}
但是inmobi广告在我的应用程序的iframe中,我无法控制他们如何传递url。我还尝试绑定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;
    }
});
但“其他”永远不会被绊倒。inmobi广告刚刚接管了应用程序,用户被迫终止并重新启动应用程序,使其恢复可用状态。有没有其他我应该关注的事件

以下是我如何称呼inmobi广告:

var inmobi_conf = {
    siteid : "*******mySiteId*******",
    slot : "15",
    manual: true,
    test: true,
    targetWindow: "_blank"
};
我本想(也曾尝试)将“targetWindow”设置为_system,但唯一有效的参数是“_blank”和“_top”

有人知道一种方法可以让iFrame链接(你不能设置为_系统)在本机浏览器中打开,而不是接管应用程序,或者让inmobi广告不接管应用程序吗


我最终通过在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"
};
/*
document.body.insertAdjacentHTML
(“之前”,
""
)
*/
document.body.appendChild
(
document.createElement(“iframe”)
).setAttribute(“id”、“myframe”)
变量inmobi_conf={
站点ID:“******我的站点ID*******”,
插槽:“15”,
手册:对,
测试:对,
targetWindow:“我的框架”
};
参考资料


Edit:使用InMobi而不是adMob清理问题,以更好地反映问题。我通过在config.xml中设置来解决这个问题。这是一个可怕的工作,但这是我最好的。希望其他人能想出更好的办法。嗨,你找到更好的解决办法了吗?我没有。我几乎放弃了这一点,正在等待Phonegap构建来承载AdMob插件。希望它很快就会出现。这并不是对你问题的直接回答,但我放弃了尝试使用第三方广告系统。相反,我注册了cj.com,选择了我想要的广告。我已经构建了一些js,将广告加载到我的应用程序中,然后每X秒切换一次可见广告。让我知道你想要它。你只需要知道广告的URL和要使用的链接。所以它可以用于任何广告或任何内容。