【问题标题】:Handling events from remote webpage directly to the app using InAppBrowser使用 InAppBrowser 处理从远程网页直接到应用程序的事件
【发布时间】:2013-04-29 09:59:23
【问题描述】:

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

【问题讨论】:

    标签: cordova inappbrowser


    【解决方案1】:

    是的,绝对可以使用 InAppBrowser 处理一些事件。如果您查看at the API docs,您会看到可以使用的addEventListener 函数。目前,您可以在外部页面上收听的事件列表似乎仍然有限:

    1. loadstart - InAppBrowser 开始加载 URL 时触发的事件
    2. loadstop - InAppBrowser 完成 URL 加载时触发的事件
    3. loaderror - 当 InAppBrowser 在加载 URL 时遇到错误时触发的事件
    4. exit - InAppBrowser 窗口关闭时触发的事件

    看起来您可以只使用loadStartloadStop 事件(不确定哪个最适合您的目的,可能是loadStart()。)

    下面是一些示例代码:

    在您用来打开 inAppBrowser 的 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" 或其他方法
    猜你喜欢
    • 2016-08-27
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多