【问题标题】:Cordova InAppBrowser opens double window on AndroidCordova InAppBrowser 在 Android 上打开双窗口
【发布时间】:2014-12-15 12:44:35
【问题描述】:

我在 Cordova 3.6 中使用最新版本的 InAppBrowser 开发了一个应用程序。在 Android 设备(4.1.2 和其他设备)上运行时,当用户点击链接打开 InAppBrowser 时,有时似乎会打开一个双窗口。这些窗口中的第二个没有关闭。

为了检查这是否是我在我的应用程序中所做的事情,我快速创建了一个默认的 Cordova hello world 应用程序并添加了标准的 window.open 代码和这样的链接

<a href="#" onclick="window.open('http://www.google.com','_blank')">OPEN WINDOW</a>

设备上的基本测试显示同样的事情正在发生 - 偶尔快速或双击会打开一个双窗口,其中一个窗口无法关闭。可以是

这似乎不会在 iOS 上发生。

感谢任何帮助。

更新

我的主应用程序的部分问题是在错误位置(onpagecreate)声明的函数被多次触发。我把它放在这里以防有人做类似的事情......

但是,在 hello world 应用上,问题仍然偶尔会发生。我尝试了使用和不使用 Fastclick,但 Fastclick 无法正常工作(可能与 jQuery Mobile 冲突,arrghh)。

【问题讨论】:

    标签: android cordova inappbrowser


    【解决方案1】:

    您的问题可能是由使用“onclick”事件启动子浏览器引起的。

    onclick 有一个内置的 300 毫秒超时,这会使应用显得迟钝并导致上述一些问题。

    改为使用 mouseup/mousedown,并在处理程序中禁用监听器

    <a href="#" onclick="open('http://www.google.com','_blank')">OPEN WINDOW</a>
    
    function open(url, name) {
        // deregister the onclick listener, insuring the callback resolves
        window.open(url,name);
        // register the listener
    }
    

    【讨论】:

    • 我试过 Fastclick,但没有正常工作,可能是由于 jQuery Mobile 冲突。无论如何,会进一步调查,但这个问题可能会减少到其他一些已经在 SO 上的问题,所以除非有更多的启发,否则会将您标记为已回答。
    猜你喜欢
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多