按下硬件后退按钮时如何防止默认导航?我已经尝试了registerBackButtonAction,但它会覆盖我不想要的每个页面中的后退按钮的行为.
这也没有帮助.
document.addEventListener("backbutton",(event) => { event.preventDefault(); },false);
正如您在
Ionic docs中看到的,registerBackButtonAction返回一个函数:
原文链接:https://www.f2er.com/angularjs/143237.htmlA function that,when called,will unregister its back button
action.
import { Component} from '@angular/core'; @Component({ selector: 'page-home',templateUrl: 'home.html' }) export class HomePage { // Property used to store the callback of the event handler to unsubscribe to it when leaving this page public unregisterBackButtonAction: any; constructor(...) { ... } ionViewDidEnter() { this.initializeBackButtonCustomHandler(); } ionViewWillLeave() { // Unregister the custom back button action for this page this.unregisterBackButtonAction && this.unregisterBackButtonAction(); } public initializeBackButtonCustomHandler(): void { this.unregisterBackButtonAction = this.platform.registerBackButtonAction(() => { this.customHandleBackButton(); },10); } private customHandleBackButton(): void { // do what you need to do here ... } }
正如您所看到的,关键是存储registerBackButtonAction方法的回调并在以后离开页面时使用它(或者当您想要恢复默认行为时):
this.unregisterBackButtonAction = this.platform.registerBackButtonAction(() => { this.customHandleBackButton(); },10);