机器人的WebView:处理JavaScript中的方向键 [英] android WebView: Handle arrow keys in JavaScript

查看:170
本文介绍了机器人的WebView:处理JavaScript中的方向键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有我想控制使用键盘一个简单的WebView应用程序。 是否有可能在JavaScript赶上方向键?

我曾尝试以下code没有任何的运气:

 函数handleArrowKeys(EVT){
    console.info(钥匙);
}

document.onkeyup = handleArrowKeys;
document.onkedown = handleArrowKeys;
document.onke preSS = handleArrowKeys;
 

JavaScript是在web视图启用

  WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(真正的);
webSettings.setDomStorageEnabled(真正的);
 

解决方案

您应该覆盖的WebView的的onkeydown 方法。 请参阅: http://blog.csdn.net/focusxi/article/details/6780965

  @覆盖
公共布尔的onkeydown(INT键code,KeyEvent的事件){
    INT valKey = 0;
    的System.out.println(Web密钥:);
    的System.out.println(键code);

    开关(钥匙code){
        //向上
        案例50:
        案例19:
            valKey = 19;
            打破;
        //向下
        案例83:
        案例20:
            valKey = 20;
            打破;
        //剩下
        案例81:
        案例21:
            valKey = 21;
            打破;
        //对
        案例69:
        案例22:
            valKey = 22;
            打破;
    }

    如果(valKey!= 0)
    {
        //新的KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEY code_SHIFT_LEFT);
        KeyEvent的EVENT1 =新的KeyEvent(KeyEvent.ACTION_DOWN,valKey);

        的System.out.println(event1.getKey code());

        返回super.onKeyDown(38 EVENT1);
    }
    其他
    {
        返回super.onKeyDown(键code,事件);
    }

}
}
 

I have a simple WebView application which I want to control with the keyboard. Is it possible to catch arrow keys in javascript?

I have tried the following code without any luck:

function handleArrowKeys(evt) {
    console.info('key');                                                                                         
}

document.onkeyup = handleArrowKeys;
document.onkedown = handleArrowKeys;
document.onkepress = handleArrowKeys;

javascript is enabled in the webview

WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);

解决方案

You should overwrite the onKeyDown method of WebView. See: http://blog.csdn.net/focusxi/article/details/6780965

@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:处理JavaScript中的方向键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆