有人发了这个....
在4.4.2 (api level 19)中,当使用软(软件)键盘时,WebView不再正确地接收javascript中的按键事件。javascript函数没有被调用。
我已经在模拟器和运行4.4.2.
的Nexus 4
上确认了这一点,我附上了一个示例网页。对于模拟器,LogCat显示这些提示问题的消息:
04-07 23:59:22.613: E/chromium(2271): [ERROR:immediate_input_router.cc(507)] We seem to have a different key type sent from the renderer. (7 vs. 10). Ignoring event.
04-07 23:59:22.613: E/chromium(2271): [ERROR:immediate_input_router.cc(504)] Got a KeyEvent back from the renderer but we don't seem to have sent it to the renderer!
04-07 23:59:22.633: E/chromium(2271): [ERROR:immediate_input_router.cc(504)] Got a KeyEvent back from the renderer but we don't seem to have sent it to the renderer!
04-07 23:59:54.203: W/UnimplementedWebViewApi(2271): Unimplemented WebView method onKeyDown called from: android.webkit.WebView.onKeyDown(WebView.java:2169)
所以,有没有办法看到optionmenu在Android 4.4.2 &软键盘吗?当我触摸软键盘菜单按钮时,logcat显示
08-08 17:25:55.138: W/UnimplementedWebViewApi(22840): Unimplemented WebView method onKeyDown called from: android.webkit.WebView.onKeyDown(WebView.java:2169)
我的建议是:
您可以将webview客户端附加到webview。然后你可以在类中覆盖一个扩展了BaseInputConnection的方法:
@Override
public boolean sendKeyEvent(KeyEvent event) {
return super.sendKeyEvent(event);
// call webview client method here to let javascript know what key was pressed
}
希望这对你有帮助。