2017-07-14 19 views
6

, kullanıcı o header back button ve öyle sahiptir login page below.On gösterildiği gibi login page göstermektedir sonra giriş yapmadığında İyonik 3 etkin kapatır iyi çalışıyor (aşağıdaki kodu görebilirsiniz). hardware back button on Android device kullanıcı isabet zaman aynı işlevselliğe ihtiyacım var. Ama app.Can kapatır nasıl bu sorunu çözmek için söyle? Daha fazla bilgiye ihtiyacınız varsa lütfen bana bildirin.Donanım geri düğmesi Sekmesinde uygulama app kullanıcı <code>my profile</code> sayfası (veya sekmesi) vurur

my-profile.ts

constructor(public navCtrl: NavController, public app: App, public userService: UserService 
     ) { 
     if (!this.userService.userDetails) { 
      this.app.getRootNav().setRoot('Login', { profile: true }); 
      return; 
     } 
    } 

login.ts

constructor(public navCtrl: NavController, public navParams: NavParams) { 
     this.profile = this.navParams.data.profile; 
    } 

    back() { 
     if (this.profile) {//not logged in user 
      this.navCtrl.setRoot('TabsPage'); 
     } 
    } 

Sen Platformu'nu kullanabilirsiniz

<ion-header> 
    <ion-navbar> 
    <ion-buttons left> 
     <button ion-button *ngIf="profile" (click)="back()" tappable><ion-icon name="arrow-back"></ion-icon></button> 
    </ion-buttons> 
    <ion-title>login</ion-title> 
    </ion-navbar> 
</ion-header> 

<ion-content padding> 

</ion-content> 

cevap

7

login.html Kullanıcı yerel geri düğmesine bastığında kullanılacak registerBackButtonAction() yöntemidir.

import { Platform } from 'ionic-native'; 
... 
constructor(public platform: Platform){ 

    platform.registerBackButtonAction(() => { 
    if (navCtrl.canGoBack()) { // CHECK IF THE USER IS IN THE ROOT PAGE. 
     navCtrl.pop(); // IF IT'S NOT THE ROOT, POP A PAGE. 
    } else { 
     platform.exitApp(); // IF IT'S THE ROOT, EXIT THE APP. 
    } 
    }); 

} 

Ama burada durum sayfaları kökleri ayarlama ve iterek değil yani, bu nedenle bu zaman kök sayfasında, İyonik normal bir durumdur ve, uygulamanın kapalı etmek pop şey yok.

platform.registerBackButtonAction(() => { 
    this.back(); 
}); 

Eğer login.ts üzerinde böyle bir şey yapabilir Bu durumda

Yani kullanıcı giriş sayfasında ve her zaman o olacak basitçe senin back() yöntemini çağırın düğmesine donanım geri vurur kökü başka bir sayfaya ayarlayın.

Bu yardımcı olur umarım.

+0

Çok teşekkürler, friend.It gayet iyi çalışıyor :) – Sampath

+0

Neden sadece giriş sayfasını "nav yığınına" ittirmek ve geri düğmesi sadece bir pop yapabilir (donanım geri varsayılan olarak yapar gibi)? Bana kökleri ve geçersiz kılan düğmeleri yerleştirmekten daha kolay görünüyor. –

+0

@rory_za aynı şeyi düşündü, ama belki uygulamanın istediği yoldur, 'hey sen istediğin uygulamayı kullanabilirsin ama profilini görmeye gidersen ve giriş yapman gerekmiyorsa, giriş yapman lazım' Bu sayede bir sayfaya basmak, kullanıcının geri dönüp profil sayfasını bile göremediğinden en iyisi değil, bu durumda kökleri ayarlamak en iyi yollardan biridir. Diğeri ise, kullanıcı –

İlgili konular