Android针对键盘相关的按键做了自己的编码,相关的定义可以查看SDK API官方资料:

http://developer.android.com/reference/android/view/KeyEvent.html

 

也可以在activity中通过覆盖onKeyDown函数来获取,例如:

 

@Override //按键处理public boolean onKeyDown(int keyCode, KeyEvent event){int valKey = 0;// KeyEvent event1;System.out.println("Activity KEY:");System.out.println(keyCode);
                  System.out.println(event.getKeyCode());return super.onKeyDown(keyCode, event);}


其中,函数内部keyCode和event.getKeyCode()是一样的!

 

如果使用webview访问web,里面的JS获取的按键是有自己的编码的。可以在JS里把信息打印出来对比:

document.onkeydown = keyDown function keyDown(event) {  var key_code = event.keyCode;alert(key_code);}


例如,针对光标方向键,webview接收到的key为,19,20,21,22。传递到JS时,打印出来38,39,40,41。这点其实不用担心,

内部自己会转换的。

 

针对与方向键,webview的源码内会默认先预处理。比如,如果HTML页面如果没有什么可以响应的,就会返回给activity来处理。

好像JS里的onkeydown获取不到方向的按键。除非覆盖webview的getKeyCode(),例如:

 

@Override //按键处理public boolean onKeyDown(int keyCode, KeyEvent event){int valKey = 0;System.out.println("Web KEY:");System.out.println(keyCode);        switch(keyCode){        //UP        case 50:        case 19:        valKey = 19;        break;        //DOWN        case 83:        case 20:        valKey = 20;         break;        //LEFT        case 81:        case 21:        valKey = 21;        break;        //RIGHT        case 69:        case 22:        valKey = 22;        break;        }        if (valKey!=0)        {            //new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT);            KeyEvent event1 = new KeyEvent(KeyEvent.ACTION_DOWN, valKey);                        System.out.println(event1.getKeyCode());                return super.onKeyDown(38, event1);        }        else        {        return super.onKeyDown(keyCode, event);        }}}


用webview开发时,可能常碰到这种问题,这里先备忘一下~~~~

 

 

更多相关文章

  1. C语言函数以及函数的使用
  2. Android 设置EditText光标Curso颜色及粗细
  3. 解决EditText不显示光标的三种方法(总结)
  4. android虚拟按键NavigationBar的判断
  5. Android TV webview禁止自动获取焦点 遥控器按键监听 dispatchKe
  6. android 虚拟按键源码流程分析
  7. Android基本操作1(意图使用、界面转换、按键操作、文本传递)
  8. EditText 不显示光标 光标消失
  9. android按键灯流程分析

随机推荐

  1. Linux SendMail 使用外部SMTP服务发送邮
  2. Linux第三章 命令基本格式及文件处理命令
  3. 弱智入门Linux——拉高CPU使用率
  4. gdb捕获syscall条件和字符串比较
  5. Linux命令-网络命令:netstat
  6. 学linux向那方面发展比较好
  7. 【Linux】Linux下使用wget 命令下载JDK7
  8. 我是这样学习Linux下C语言编程的-编译命
  9. Debian 7开启ssh、telnet
  10. Linux如何查找大文件