J'ai regardé autour de la nouvelle plate-forme pour le Ionic 4, il semble que la fonction registerBackButtonAction
en ait été supprimée.
Existe-t-il d'autres alternatives pour gérer le Android bouton de retour matériel?
Mise à jour: Cela a été corrigé dans dfac9dc
Connexes: comment intégrer le bouton de retour matériel dans la navigation ionic4
Ceci est suivi sur GitHub , dans les Ionic Forums et Twitter
Jusqu'à ce qu'il existe un correctif officiel, vous pouvez utiliser cette solution de contournement:
this.platform.backButton.subscribe(() => {
// code that is executed when the user pressed the back button
})
// To prevent interference with ionic's own backbutton handling
// you can subscribe with a low priority instead
this.platform.backButton.subscribeWithPriority(0, () => {
// code that is executed when the user pressed the back button
// and ionic doesn't already know what to do (close modals etc...)
})
Sachez que vous devez enregistrer le résultat de subscribe(...)
si vous souhaitez vous désinscrire à nouveau.
Ancienne réponse: (obsolète depuis avril 2018)
registerBackButtonAction
est juste un wrapper pour appel Cordova correspondant .
Vous pouvez donc simplement transférer votre ancien appel vers registerBackButtonAction
:
this.platform.registerBackButtonAction(() => {
// code that is executed when the user pressed the back button
});
et remplacez-le par:
this.platform.ready().then(() => {
document.addEventListener("backbutton", () => {
// code that is executed when the user pressed the back button
});
});
j'ai essayé
"@ionic/angular": "^4.7.0-dev.201907191806.32b736e",
"@ionic/core": "^4.7.0-dev.201907191806.32b736e",
ça marche!
commit git ionique https://github.com/ionic-team/ionic/commit/978cc39009a9a0fb065540ce17e10c685b6c101a
Dans le cas de @ ionic/vue, vous pouvez mettre ceci (ou quelque chose comme ça) dans main.js
import { Plugins } from '@capacitor/core'
Plugins.App.addListener('backButton', function() {
console.log(111);
window.history.back();
});
Non, non, console.log(111);
n'est pas une erreur, cela fait partie de la solution :)