注册后退按钮操作 , Ionic2 ,用于不同的页面



我正在开发一个Ionic2应用程序。我对registerBackButtonAction功能感到困惑。

我已经在一个页面上完成了这个(比如页面A(。 并且它按预期工作。

this.platform.registerBackButtonAction(() => {
     console.log("back presed");
    this.abortDownloadAndExit();
    });

现在我想在其他页面上registerBackButtonAction(例如PageB(上执行其他操作。但是Ionic正在从页面A采取行动

如何在不同的页面上注册不同的活动。

正如你在 Ionic 文档中看到的registerBackButtonAction返回一个函数:

一个函数,在调用时,将注销其后退按钮操作。因此,您可以使用该函数在离开页面时恢复默认行为,如下所示:

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);

相关内容

  • 没有找到相关文章

最新更新