2017-01-31 4 views
0

ionic2プラットフォームのangular2のバックボタン機能をオーバーライドしようとしています。これはapp.component.tsファイルで書かれた私のコードです。platform.registerBackButtonActionが機能していません

constructor(platform: Platform,public myapp: IonicApp) { 
    this.pltform=platform; 
    this.app=myapp; 
    platform.ready().then(() => { 
      StatusBar.styleDefault(); 
      Splashscreen.hide(); 
      platform.registerBackButtonAction(function(event){ 
      window.alert("back button pressed"); 
      let nav = this.app.getActiveNav(); 
      if (nav.canGoBack()){ //Can we go back? 
        nav.pop(); 
      }else{ 
       this.platform.exitApp(); //Exit from app 
      } 
     }); 
    } 
} 

バックボタンをクリックして登録すると、バックボタンアクションメソッドのみが一度だけ表示されます。およびthis.app.getActiveNav();定義されていない。

答えて

0

通常の関数コールバックを使用しています。 thisは、クラスではなく関数を参照します。 うえ矢印機能

platform.registerBackButtonAction((event)=>{ 
      window.alert("back button pressed"); 
      let nav = this.app.getActiveNav(); 
      if (nav.canGoBack()){ //Can we go back? 
        nav.pop(); 
      }else{ 
       this.platform.exitApp(); //Exit from app 
      } 
     }); 

それともself

let self = this;  
platform.registerBackButtonAction(function(event){ 
       window.alert("back button pressed"); 
       let nav = self.app.getActiveNav(); 
       if (nav.canGoBack()){ //Can we go back? 
         nav.pop(); 
       }else{ 
        this.platform.exitApp(); //Exit from app 
       } 
      }); 
+0

1ページだけのためにこのコードの動作や、それはすべてのページのために働く必要のあるすべてのページ –

+0

意志を使用..プラットフォームは、アプリケーション全体に対して単一のオブジェクトであり、あなたはその戻るボタン –

+0

を登録していますので、このコードを使用して私の問題を解決するならば、ホームページを閉じるだけにしたいです –

関連する問題