我在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)。
答案 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
}