【问题标题】:Capturing KeyPress Events in Android WebView在 Android WebView 中捕获 KeyPress 事件
【发布时间】:2014-01-07 10:01:27
【问题描述】:

目前,我的应用程序有一个加载某些表单/网站等的 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)?

【问题讨论】:

    标签: android


    【解决方案1】:

    只需将此代码放入您的 webview 中,一切都会像魅力一样发挥作用。

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

    【讨论】:

    【解决方案2】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-20
      • 1970-01-01
      • 2012-05-21
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多