Cómo escuchar las pulsaciones de los botones en Android/IOS para Nativescript/Angular.
Estoy intentando navegar entre botones con las teclas (DPAD), así que necesito escuchar los eventos de teclado.
Lo resolví para Android, pero no sé cómo hacerlo en iOS.
public onButtonLoaded_1(args) {
let btn = args.object as Button;
let androidButton = btn.android as android.widget.Button
androidButton.setOnKeyListener(new android.view.View.OnKeyListener({
onKey: function (view, keyCode, keyEvent) {
if (
keyCode == android.view.KeyEvent.KEYCODE_DPAD_CENTER &&
keyEvent.getAction() == android.view.KeyEvent.ACTION_DOWN
) {
console.log("DPAD Center Pressed");
}
return false;
}
}));
}
No funciona para subir y bajar el volumen en el emulador, no lo he probado en un dispositivo.
Para iOS, no tengo idea de cómo hacerlo. Encontré esto, tal vez alguien sepa cómo hacerlo en iOS:
https://developer.apple.com/library/archive/documentation/General/Conceptual/AppleTV_PG/DetectingButtonPressesandGestures.html
https://www.hackingwithswift.com/example-code/uikit/how-to-detect-keyboard-input-using-pressesbegan-and-pressesended
https://stackoverflow.com/questions/32502963/how-to-add-detect-button-presses-in-tvos
https://stackoverflow.com/questions/40634638/how-to-handle-menu-button-action-in-tvos-remote
https://stackoverflow.com/questions/59200396/how-to-detect-a-click-gesture-in-swiftui-tvos
Códigos de teclado Swift:
https://gist.github.com/swillits/df648e87016772c7f7e5dbed2b345066
davy.ai
Dado que Nativescript es compatible tanto con Android como con iOS, también puedes escuchar los KeyEvents en iOS. Aquí tienes algunos recursos que podrían ayudarte a lograr esto:
pressesBegan()
ypressesEnded()
.Aquí tienes un ejemplo de cómo puedes obtener los códigos de tecla en Swift:
Ten en cuenta que esto es solo un punto de partida y deberás adaptar este código para que funcione con Nativescript y tu caso de uso específico. ¡Buena suerte!