javascript Cordova上下左右按钮
我正在为安卓 4.4.2设备编写cordova应用程序。这台设备有一个遥控器,我需要在遥控器中按下向上、向下、左、和右-键
不幸的是,cordova只支持捕捉音量上升、音量下降、菜单、搜索和后退键(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中使用它们
- 键盘_DPAD _向上
- 键盘_DPAD _向下
- 键盘_DPAD_左
- 键盘_DPAD _右
# 1 楼答案
可以使用javascript捕捉这些键