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
看來我的想法是這樣複雜的...謝謝! –
不客氣** @ Michael B ** –