我使用jQuery Mobile创建了一款移动应用,并通过PhoneGap Build v2.5为iOS和Android构建了该应用。我成功地使用inmobi的javascript api添加了广告。广告显示得很好,但当用户点击广告时,问题就来了,因为广告接管了应用程序。在Android上这不是什么问题,因为用户有返回按钮,但在iOS设备上,用户被卡住了,无法返回我的应用。
我已成功设置了应用中包含的所有外部链接,通过将所有url传递到此函数,以在设备的浏览器中打开:
我已成功设置了应用中包含的所有外部链接,通过将所有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;
}
});
但是“else”从来没有被触发。Inmobi广告接管了应用程序,用户被迫关闭并重新启动应用程序才能恢复可用状态。我应该监听不同的事件吗?
这是我调用Inmobi广告的方式:
var inmobi_conf = {
siteid : "*******mySiteId*******",
slot : "15",
manual: true,
test: true,
targetWindow: "_blank"
};
我曾尝试将“targetWindow”设置为_system,但是有效的参数只有“_blank”和“_top”。
是否有人知道如何使iFrame链接(无法设置为_system)在本机浏览器中打开,而不是接管应用程序或者防止inmobi广告接管应用程序?