2013-09-30 13 views
1

使用GWT 2.5.1和Cordova 2.9.0.0开发iOS应用程序。ios Cordova javascript焦点事件永远不会到来

遇到了一个很大的问题:一旦点击任何文本框出现虚拟键盘,但没有JavaScript焦点事件被触发(或除窗口调整大小以外的任何其他事件)。

所以我无法确定哪个文本框被点击。此外,我甚至不能说为什么窗口大小已经改变 - 因为屏幕方向改变或键盘外观。

document.activeElement指向BODY元素。

第二次敲击(当键盘可见时)会触发onFocus事件。

尝试在iPhone模拟器5.0和6.0

所以,问题是我如何能得到积极的文本框的第一次敲击或检查,如果虚拟键盘是可见的(无需编写PhoneGap的插件)?

更新: 问题只发生在config.xml中有KeyboardShrinksView =真

回答

0

一般而言,据我了解,这个问题需要在iOS中的WebView处理(东西焦点事件的特殊性的地方导致与鬼点击事件,没有时间深入挖掘)。

解决方案是使用jQuery捕捉“触摸”事件,并将焦点设置为手动点击输入。 我不知道为什么我们需要的jQuery在这里,但它是我设法抓住“触摸”的唯一途径事件

的代码(使用GWT jQuery的端口gwtquery):到目前为止,它的工作原理

$("input").live(Event.ONTOUCHEND, new Function() { 
@Override 
public boolean f(final Event e) { 
    $(e).focus(); 
    return false; 
    } 
}); 

或多或少。

相关问题