2016-03-11 66 views
0

我正在爲android 4.4.2設備編寫cordova應用程序。該器件具有遠程控制,我需要趕上向上向下,並 -keys。科爾多瓦捕捉向上,向下,向左,向右按鈕

不幸的是科爾多瓦只支持醒目的卷式,卷下,菜單事件,搜索和備份密鑰(See documentation

於是,我就寫我自己的插件,但遺憾的是我堅持和不知道如何繼續。

Java的部分(簡化):

public OwnPlugin() {} 

    public void initialize(CordovaInterface cordova, CordovaWebView webView) { 
    super.initialize(cordova, webView); 
    } 

    public boolean execute(final String action, JSONArray args, CallbackContext callbackContext) throws JSONException { 

    if (action.equals("overrideUpButton")) { 
     this.overrideUpButton(args.getBoolean(0)); 
    } 
    return true; 
    } 

    public void overrideUpButton(boolean override) { 
    webView.setButtonPlumbedToJs(KeyEvent.KEYCODE_DPAD_UP, override); 
    } 
} 

JS-部分(簡體):

cordova.define("com. ... ", function(require, exports, module) { 
var exec = require('cordova/exec'); 

function OwnPlugin() { 
} 

OwnPlugin.prototype.overrideUpButton = function(override, onsucess, onfail){ 
exec(onsucess, onfail, "OwnPlugin", "overrideUpButton" ,[ override ]); 
}; 


var ownPlugin = new OwnPlugin(); 
module.exports = ownPlugin; 
}); 

這給了我一個例外,試圖與OwnPlugin.overrideUpButton(true);覆蓋按鈕時:

E/PluginManager: Uncaught exception from plugin 
E/PluginManager: java.lang.IllegalArgumentException: Unsupported keycode: 19 
E/PluginManager:  at org.apache.cordova.CordovaWebViewImpl.setButtonPlumbedToJs(CordovaWebViewImpl.java:366) 

好的...這種方法將不起作用,因爲我需要的按鈕代碼不被支持CordovaWebViewImpl.java

那麼我現在能做什麼?我如何捕獲這些關鍵代碼,以便我可以防止默認操作,並在JavaScript中使用它們?

  • KEYPAD_DPAD_UP
  • KEYPAD_DPAD_DOWN
  • KEYPAD_DPAD_LEFT
  • KEYPAD_DPAD_RIGHT

回答

1

您可以使用JavaScript來對付那些鍵

window.addEventListener("keydown", moveSomething, false); 
  
function moveSomething(e) { 
    switch(e.keyCode) { 
        case 37: 
            // left key pressed 
            break; 
        case 38: 
            // up key pressed 
            break; 
        case 39: 
            // right key pressed 
            break; 
        case 40: 
            // down key pressed 
            break;  
    }   
} 
+0

看來我的想法是這樣複雜的...謝謝! –

+0

不客氣** @ Michael B ** –

相關問題