Basta adicionar o trecho de código abaixo no construtor do arquivo app.component.ts de seu projeto. Obviamente, alterando os nomes das páginas e características que achar necessário.
this.platform.ready().then(() => {
var lastTimeBackPress = 0;
var timePeriodToExit = 2000;
//Registrando a ação de pressionar o botão voltar
this.platform.registerBackButtonAction(() => {
// obtem a pagina ativa
let view = this.nav.getActive();
if (view.instance instanceof PaginaInicial) {
if (new Date().getTime() - lastTimeBackPress < timePeriodToExit) {
this.platform.exitApp(); //Sair do app
} else {
let toast = this.toastCtrl.create({
message: 'Toque novamente para sair.',
duration: 2000,
position: 'bottom',
});
toast.present();
lastTimeBackPress = new Date().getTime();
} //Tratamento das demais páginas
} else if (
view.instance instanceof PrimeiraPagina
|| view.instance instanceof SegundaPagina
|| view.instance instanceof TerceiraPagina
) {
this.openPage(this.pages[0]);
} else {
this.nav.pop({}); // go to previous page
}
});
});
É um script bem básico mas pode ser um bom ponta pé inicial para quem precisa dessa funcionalidade no app.
Amigo como eu usaria este código usando Tabs no ionic.
Olá Dieyson, a Tab é vista como uma view no ionic. Com o objeto ViewController injetado no construtor você consegue saber qual view está sendo visualizada no momento e assim manipular o botão voltar conforme a especificidade de cada página.
Espero ter ajudado,
Sóstenes Dias