2017-05-05 138 views
1

在我的Ionic 2應用程序中,硬件後退按鈕(android,windows)應該像他在默認情況下那樣工作,但有一個例外:如果存在沒有什麼可以回來的。Ionic 2 - 防止退出應用程序硬件後退按鈕

我知道我能做到這一點是這樣的:

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

但我怎麼都必須完全現在就做,使之爲默認值,但與這一個例外的工作?在ionic 1 docs of that function中有不同情況的優先級。但我認爲在離子2中發生了變化!因爲在ionic 2 docs沒有這些優先事項。我試圖將優先級設置爲99,因爲那麼一切都應該作爲默認值工作。但是現在sidemenu不能再被關閉了,這就是爲什麼我認爲離子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

沒有那不是默認的操作...旁邊的菜單例如不會關閉你的代碼。 – Nono

+0

對於這種情況,我編輯了代碼。請檢查它是否適合您的情況 – nabin

相關問題