Cordova 使用InAppBrowser直接处理从远程网页到应用程序的事件

Cordova 使用InAppBrowser直接处理从远程网页到应用程序的事件,cordova,inappbrowser,Cordova,Inappbrowser,我想从cordova应用程序打开一个外部webapp,并直接在本机应用程序上处理webapp事件。例如,当加载特定URL时,应用程序应该通过调用函数来处理它。有人知道这是否可行吗?是的,使用InApp浏览器处理某些事件绝对可行。如果您查看,您将看到一个可以使用的addEventListener函数。目前,您可以在外部页面上侦听的事件列表似乎仍有一定的限制: loadstart—InAppBrowser开始加载URL时激发的事件 loadstop—InAppBrowser完成加载URL时激发的事件

我想从cordova应用程序打开一个外部webapp,并直接在本机应用程序上处理webapp事件。例如,当加载特定URL时,应用程序应该通过调用函数来处理它。有人知道这是否可行吗?

是的,使用InApp浏览器处理某些事件绝对可行。如果您查看,您将看到一个可以使用的
addEventListener
函数。目前,您可以在外部页面上侦听的事件列表似乎仍有一定的限制:

  • loadstart—InAppBrowser开始加载URL时激发的事件
  • loadstop—InAppBrowser完成加载URL时激发的事件
  • loaderror—InAppBrowser在加载URL时遇到错误时激发的事件
  • exit—InAppBrowser窗口关闭时激发的事件
  • 看起来,出于您的目的,您可以只使用
    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”或其他方法