Ionic 2 kullanıyorum. Kullanıcının, navigasyon sırasında ayrılmak istediklerini doğrulaması istenmesi gerektiğine dair bir görüşüm var (o sırada bir video oynatılıyor ve muhtemelen yanlışlıkla bir navigasyon).İyonik'te bir sekme değişikliğinde nav korumasını nasıl kullanabilirim?
Ben kullanıcı aşağıdaki kodu kullanarak, üst nav veya geri donanım düğmesine (Android) geri düğmesine tıkladığında bu çalışma cezası vardır:
// About to leave
ionViewCanLeave() {
this.api.getDefaultMedia().pause();
return new Promise((resolve, reject) => {
if(!this.allowedToLeave) {
let confirm = this.alertCtrl.create({
title: 'Are you sure?',
message: 'If you leave a class you will need to start over. Are you sure you want to leave? If you need a break you can pause by tapping the video.',
buttons: [{
text: 'OK',
handler:() => {
this.allowedToLeave = true;
resolve();
},
}, {
text: 'Cancel',
handler:() => {
reject();
}
}],
});
confirm.present();
}
});
}
görünümü bir sekmede oturur. farklı bir sekmeye tıklamak bu işlevi çağırmaz, bu nedenle kullanıcı istenmez ve sekme sadece değişir.
Sekme değişikliğinde bu komut istemi nasıl görüntülenebilir? Bu görünüm , bir kök sekmesi sayfası değildir.
-bir sekme değişikliği çağrısında, ancak geçiş yapmasını önlemek için bir yol izin vermez
BenionViewWillLeave()
kullanarak denedi
.
// Called when user exits page via tab
ionViewWillLeave() {
this.api.getDefaultMedia().pause();
if(!this.allowedToLeave) {
let confirm = this.alertCtrl.create({
title: 'Are you sure?',
message: 'If you leave a class you will need to start over. Are you sure you want to leave? If you need a break you can pause by tapping the video.',
buttons: [{
text: 'OK',
handler:() => {
this.allowedToLeave = true;
this.leave();
},
}, {
text: 'Cancel',
handler:() => {
// Do nothing
}
}],
});
confirm.present();
return false;
}
}
// Leave the view
leave() {
this.navCtrl.pop();
}
Sözünü geri vermeniz gerektiği gibi görünüyor. Esasen, 'false' yerine return.present(); –