В конце я остановился на самом простом решении. В упражнении. android. js я реализовал простой шаблон слушателя:
androidx.appcompat.app.AppCompatActivity.extend("org.myApp.MainActivity", {
keyUpListener: null,
registerListener(name, func) {
if (name == "keyUp") {
this.keyUpListener = func;
}
else {
throw new Error(`There's not a type of listener called ${name}.`);
}
},
unregisterListener(name) {
if (name == "keyUp") {
this.keyUpListener = null;
}
else {
throw new Error(`There's not a type of listener called ${name}.`);
}
},
onKeyUp: function (keyCode, event) {
if (this.keyUpListener) {
let result = this.keyUpListener(keyCode, event);
if (result != null) {
return result;
}
}
return superProto.onKeyUp.call(this, keyCode, event);
},
[... snip ...]
Затем в моем файле. vue я просто регистрирую слушателя для расширенного занятия:
import { android as androidApp } from "tns-core-modules/application";
[... snip ...]
androidApp.foregroundActivity.registerListener(
"keyUp",
this.onKeyUp
);
Если есть лучший Vue или NativeScript способ решения этой проблемы, я хотел бы узнать об этом.