Ionic 개발 메모장
Ionic Framework 뒤로가기 두 번 누를 시 앱 종료 (for Android)
IT김군
2018. 1. 16. 15:59
안녕하세요. IT김군입니다.
Ionic Framework로 Cross Platform을 개발할 시 IOS는 종료의 기능을 지원하지 않으니 Android의 종료기능을 구현하셔야 될텐데요.
저 같은 경우는 뒤로가기 두 번으로 App을 종료하는 기능을 자주 사용합니다.
모든 페이지에 다 적용되도록 app.component.ts에 작업하였습니다.
우선 import 작업과 생성자에 선언 작업을 아래와 같이 해줍니다.
import { App, Platform , ToastController } from 'ionic-angular';
constructor(platform : Platform, private app : App, private toastCtrl : ToastController)
위의 작업이 완료되셨다면 저는 생성자 platform.ready().then(() => {'여기'}); 저 플랫폼레디 내부에 아래 소스를 넣었습니다.
// 뒤로가기 두 번 종료
platform.registerBackButtonAction(() => {
const overlay = this.app._appRoot._overlayPortal.getActive();
const nav = this.app.getActiveNav();
const closeDelay = 2000;
const spamDelay = 500;
if(overlay && overlay.dismiss) {
overlay.dismiss();
} else if(nav.canGoBack()){
nav.pop();
} else if(Date.now() - this.lastBack > spamDelay && !this.allowClose) {
this.allowClose = true;
let toast = this.toastCtrl.create({
message: "'뒤로가기' 버튼을 연속으로 두 번 누르시면 App이 종료됩니다.",
duration: closeDelay,
dismissOnPageChange: true
});
toast.onDidDismiss(() => {
this.allowClose = false;
});
toast.present();
} else if(Date.now() - this.lastBack < closeDelay && this.allowClose) {
platform.exitApp();
}
this.lastBack = Date.now();
});
넣고 나면 정상작동하는 것을 확인하실 수 있습니다.
궁금하신 점이나 제가 틀린 부분이 있다면 댓글달아주세요.
감사합니다.