Cordova 使用InAppBrowser直接处理从远程网页到应用程序的事件
我想从cordova应用程序打开一个外部webapp,并直接在本机应用程序上处理webapp事件。例如,当加载特定URL时,应用程序应该通过调用函数来处理它。有人知道这是否可行吗?是的,使用InApp浏览器处理某些事件绝对可行。如果您查看,您将看到一个可以使用的Cordova 使用InAppBrowser直接处理从远程网页到应用程序的事件,cordova,inappbrowser,Cordova,Inappbrowser,我想从cordova应用程序打开一个外部webapp,并直接在本机应用程序上处理webapp事件。例如,当加载特定URL时,应用程序应该通过调用函数来处理它。有人知道这是否可行吗?是的,使用InApp浏览器处理某些事件绝对可行。如果您查看,您将看到一个可以使用的addEventListener函数。目前,您可以在外部页面上侦听的事件列表似乎仍有一定的限制: loadstart—InAppBrowser开始加载URL时激发的事件 loadstop—InAppBrowser完成加载URL时激发的事件
addEventListener
函数。目前,您可以在外部页面上侦听的事件列表似乎仍有一定的限制:
loadStart
或loadStop
事件(不确定哪个事件最适合您的目的,可能是loadStart()
)
下面是一些示例代码:
在用于打开iApp浏览器的HTML页面中:
function onDeviceReady(){
var ref = window.open('http://your.site.com/page', '_blank', 'location=yes');
ref.addEventListener("loadstop", IABcallback);
}
function IABcallback(o){
console.log("InApBrowser loaded: " + o.url);
if( o.url === "http://your.site.com/page2.html"){
// Do whatever special stuff you want to do for page2 here
}
...
}
嗨,谢谢你的回答。这是可行的,我试图通过使用API使其工作,即使它有限。不过,我发现我的问题有点复杂。如果webapp使用JQuery Mobile,则此操作将不起作用。因此,我不得不重定向到一个外部的.hmtl网页,它成功了。这将在应用程序外部打开一个浏览器会话。将新页面加载到应用程序本身是否可能实现同样的效果?例如,使用window.location=“www.mysite.com”或其他方法