在Android WebView中捕获按键事件

在Android WebView中捕获按键事件,android,Android,目前,我的应用程序有一个webView,可以加载某些表单/网站等 现在,我想在此webView中捕获按键事件。下面是我正在使用的代码: @Override public boolean dispatchKeyEvent(KeyEvent KEvent) { int keyaction = KEvent.getAction(); if(keyaction == KeyEvent.ACTION_DOWN) {

目前,我的应用程序有一个webView,可以加载某些表单/网站等

现在,我想在此webView中捕获按键事件。下面是我正在使用的代码:

@Override
    public boolean dispatchKeyEvent(KeyEvent KEvent) 
    {
        int keyaction = KEvent.getAction();

        if(keyaction == KeyEvent.ACTION_DOWN)
        {
            int keycode = KEvent.getKeyCode();
            int keyunicode = KEvent.getUnicodeChar(KEvent.getMetaState() );
            char character = (char) keyunicode;

            Toast.makeText(this,"DEBUG MESSAGE KEY=" + character + " KEYCODE=" +  keycode, Toast.LENGTH_SHORT).show();
        }


        return super.dispatchKeyEvent(KEvent);
    }
使用上面的代码,我只能捕获退格和数字。字母表和特殊字符不会反映出来

是这样吗?或者我必须创建自己的特定于应用程序的键盘来捕获按键事件()

还有别的办法吗


提前感谢

只要将此代码放在您的网络视图中,一切都会很有魅力

public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
   return new BaseInputConnection(this, false); 
}

OnKeyListener可用于捕获webView上的关键事件

    mWebView.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            // You can get any keyCode or KeyEvent here
            return false;
        }
    });

这里有一个更完整的答案: