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