我正在开发一个Ionic2应用程序.我对registerBackButtonAction功能感到困惑.
我在一个页面上做了这个(比如pageA).它按预期工作.
this.platform.registerBackButtonAction(() => { console.log("back presed"); this.abortDownloadAndExit(); });
现在我想在其他页面(例如PageB)上对registerBackButtonAction做一些其他操作.但Ionic正在从pageA采取行动
正如您在
Ionic docs中看到的,registerBackButtonAction返回一个函数:
原文链接:https://www.f2er.com/angularjs/140908.htmlA function that,when called,will unregister its back button action. So you can use that function to restore the default behavior when leaving the page,like this:
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);