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. android 获取应用列表 点击打开应用
  2. Android(安卓)adb获取屏幕分辨率
  3. EditText
  4. Android(安卓)获取状态栏的高度
  5. 通过WifiManager,DhcpInfo获取android IP地址及网关等信息(两种
  6. Android】获取Mac地址
  7. webview开发-适配多分辨率的Android设备
  8. android 输入系统
  9. Android10共享文件总是读取不到文件,文件资源不存在!

随机推荐

  1. 【Android外文翻译 - 02】判断是否可以使
  2. Android第一个程序——打招呼
  3. Android动态创建ListView视图,动态增加和
  4. android生成json
  5. android 重启自身app
  6. Android(安卓)OpenCV 灰度图转化
  7. Android(安卓)Post Status to Twitter us
  8. android sqlite lock
  9. android折叠展开列表动态修改显示测试
  10. Android实现手机定位的案例代码