在Android WebView中捕获KeyPress事件

3

目前,我的应用程序有一个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 应用程序特定软键盘)?
2个回答

3
只需将此代码放入您的 Webview 中,一切都会像魔法般地运行。
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
   return new BaseInputConnection(this, false); 
}

以下是更完整的答案:https://dev59.com/aaPia4cB1Zd3GeqP3cEw#45312554 - Halil

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接