angular - ionic 4 förhindra/inaktivera enhets hårdvarubakåtknapp
Jag använder angular routing(@angular/router) för ett ionic 4-projekt för att inaktivera enhetens bakåtknapp i ionic 4, prevent-default fungerar inte, nedan är min kod i
app.component.ts
this.platform.backButton.subscribe(() => {
if (this.router.url === '/Login') {
this.util.presentAppExitAlert();
} else {
// event.preventDefault();
console.log("invoing url ", this.router.url);
}
});
});
jag kan inte inaktivera enhetens bakåtknapp, någon hjälp här
Svar #1
initializeApp() {
this.platform.ready().then(() => {
this.platform.backButton.subscribeWithPriority(9999, () => {
document.addEventListener('backbutton', function (event) {
event.preventDefault();
event.stopPropagation();
console.log('hello');
}, false);
});
this.statusBar.styleDefault();
});
}
Svar #2
Uppdatera
Lyssnarna för backButton har flyttat till RxJS-observablernas filosofi, så nu görs det lite annorlunda:
const backButtonSubscription = this.platform.backButton
.subscribeWithPriority(9999, () => {
// Do my stuff on back button tap
}));
...
// Now I want to return back button to previous state
backButtonSubscription.unsubscribe();
Förmodligen vill du göra backButtonSubscription till en egenskap i din klass så att du kan komma åt den i andra klassfunktioner.
Original
Jag listade ut hur man ångrar det (återställer knappen till dess tidigare funktion):
Din observatör trycks till this.platform.backButton.observers-arrayen. Så du behöver bara ta bort det sista elementet i listan:
this.platform.backButton.observers.pop();
Hoppas det hjälper någon.
