在Android WebView中捕获KeyPress事件

时间:2014-01-07 10:01:28

标签: android

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

现在我想捕获此webView中的KeyPressEvents。以下是我正在使用的代码:

@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);
    }

使用上面的代码,我只能捕获退格和数字。字母和特殊字符不会反映出来。

假设是这样吗?或者我必须创建自己的应用程序专用键盘来捕获按键事件(android app specific soft keyboard)?

还有其他办法吗?

提前致谢

2 个答案:

答案 0 :(得分:2)

只需将此代码放入您的网页浏览中,所有内容都可以作为魅力。

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

答案 1 :(得分:-1)

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;
        }
    });

http://developer.android.com/reference/android/view/View.OnKeyListener.html