Estoy usando el siguiente código para navegar al componente principal al hacer clic en "Botón Atrás del hardware del dispositivo". Estoy usando Capacitor 3.0 y el botón de retroceso del dispositivo funciona correctamente. El problema real es que no puedo acceder a los miembros de la clase en la función de devolución de llamada.
A continuación se muestra el código
export class ConfirmBoxComponent extends DialogContentBase implements OnInit{ constructor(public dialog: DialogRef, public myService : MyService) { super(dialog); } ngOnInit(): void { this.handleHardwareBackButton(); } public onCancelAction(): void { console.log("Cancel confirmed", this.dialog) myService.closeDialog();// closeDialog not available thru arrow or callback functions } handleHardwareBackButton(){ App.addListener('backButton',function(){ this.onCancelAction() //not able to access onCancelMethod within callback }) } }El problema es que obtengo "this.onCancelAction" no es un método. También probé el siguiente código pero no sirvió de nada.
handleHardwareBackButton(){ App.addListener('backButton',function(){ this.dialog.close({ actionConfirmed : false }); //here this line doesn't get executed. Also no errors observed }.bind(this)) }¿Me estoy equivocando en alguna parte? Guíeme sobre cómo acceder a los miembros de la clase en una función de devolución de llamada.
Prueba algo como esto...
export class ConfirmBoxComponent extends DialogContentBase implements OnInit { constructor(public dialog: DialogRef) { super(dialog); } ngOnInit(): void { this.handleHardwareBackButton(); } public onCancelAction(): void { console.log("Cancel confirmed", this.dialog) this.dialog.close({ actionConfirmed: false }); } handleHardwareBackButton() { App.addListener('backButton', () => { this.onCancelAction() //not able to access onCancelMethod within callback }) } }