2017-05-05 13 views
1

내 이오 틱 2 애플리케이션에서 하드웨어 백 버튼 (안드로이드, 윈도우)은 기본적으로 수행하고있는 것처럼 작동해야합니다 (한 가지 예외는 있음). 앱이있을 경우 종료하지 않아야합니다. 돌아갈 게 없다.이오닉 2 - 하드웨어 백 버튼에서 종료 앱 방지

은 내가 이런 식으로 작업을 수행 할 수 있습니다 알고

platform.ready().then(() => { 
    platform.registerBackButtonAction(() => { 
     // Default action with the exception here 
    },); 
}); 

하지만 어떻게 내가 정확히 지금을 수행해야합니다, 그것은 기본으로하지만 한 가지 예외가 작동하게하는? ionic 1 docs of that function에는 다른 경우의 우선 순위가 있습니다. 하지만이 이온 2에서 바뀐 것 같아요!? ionic 2 docs에는 우선 순위가 없기 때문에 나는 우선 순위를 99로 설정하려고 시도했다. 왜냐하면 모든 것이 기본값으로 작동하기 때문이다. 하지만 이제는 사이드 메뉴를 더 이상 닫을 수 없으므로 이온 1의 우선 순위가 변경되었다고 생각합니다. 이유는 이온 1 문서에서 sidemenu의 우선 순위가 150이고 내 기능이 무시되어야하는 이유이기 때문입니다. 누군가 나를 도와 줄 수 있니? 이것과 관련

+0

: https://stackoverflow.com/questions/40539573/ionic-2-cancel-hard-back-button-override-to-close-app-on-back-button-when -use – ApriOri

답변

9
constructor(public nav: NavController, private platform: Platform, public menu: MenuController) { 
     platform.ready().then(() => { 
      // Okay, so the platform is ready and our plugins are available. 
      // Here you can do any higher level native things you might need 

      platform.registerBackButtonAction(() => { 
      if(this.menu.isOpen()){ 
       this.menu.close() 
      } 
      else if(this.nav.canGoBack()){ 
       this.nav.pop(); 
      }else{ 
       //don't do anything 
      } 
      }); 
     }); 

     } 
+0

기본 동작이 아닐 수 있습니다 ... 예를 들어 sidemenu가 코드에서 더 이상 닫히지 않습니다. 이 경우에는 – Nono

+0

, 코드를 편집했습니다. 케이스에 맞는 지 확인하십시오. – nabin