目前,我的应用程序有一个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)?
还有其他办法吗?
提前致谢
答案 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