使用GWT2.5.1和Cordova 2.9.0.0开发iOS应用程序。
遇到了一个相当大的问题:点击任何文本框时,都会出现虚拟键盘,但不会触发javascript焦点事件(或除窗口大小调整以外的任何其他事件)。
因此,我无法确定点击了哪个文本框。此外,我甚至不知道为什么窗口大小会改变--因为屏幕方向的改变或键盘的外观。
document.activeElement指向BODY元素。
第二次轻敲(当键盘可见时)会触发onFocus事件。
在iphone模拟器5.0和6.0上试用
所以问题是,我如何才能在第一次点击时获得活动的文本框,或者检查虚拟键盘是否可见(而不编写phonegap插件)?
更新:仅当config.xml具有KeyboardShrinksView=true时才会出现此问题
发布于 2013-11-06 20:00:40
一般来说,据我所知,这个问题的发生是由于iOS webview中焦点事件处理的特殊性(与ghost点击事件有关。没有时间更深入地挖掘)。
解决方案是使用jQuery捕获“触摸”事件,并手动将焦点设置为轻敲的输入。我不确定为什么这里需要jquery,但这是我设法捕捉"touch“事件的唯一方法
代码(使用GWT jQuery端口gwtquery):
$("input").live(Event.ONTOUCHEND, new Function() {
@Override
public boolean f(final Event e) {
$(e).focus();
return false;
}
});
到目前为止,它或多或少运行得很好。
https://stackoverflow.com/questions/19096675
复制相似问题