Cordova InAppBrowser在Android上打开双重窗口

时间:2014-10-20 13:48:46

标签: android cordova inappbrowser

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

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

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

并且该设备上的基本测试显示同样的事情正在发生 - 偶尔快速或双击打开双窗口,其中一个是无法关闭的。从&lt; 300ms双击,或从浏览器启动缓慢的双击。

这似乎不会发生在iOS上。

感谢任何帮助。

更新

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

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

1 个答案:

答案 0 :(得分:0)

您的问题很可能是因为使用&#39; onclick&#39;启动子浏览器的事件。

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
}