加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

角度 – 离子2防止硬件后退按钮默认

发布时间:2020-12-17 07:49:32 所属栏目:安全 来源:网络整理
导读:按下硬件后退按钮时如何防止默认导航?我已经尝试了registerBackButtonAction,但它会覆盖我不想要的每个页面中的后退按钮的行为. 这也没有帮助. document.addEventListener("backbutton",(event) = { event.preventDefault(); },false); 正如您在 Ionic docs
按下硬件后退按钮时如何防止默认导航?我已经尝试了registerBackButtonAction,但它会覆盖我不想要的每个页面中的后退按钮的行为.

这也没有帮助.

document.addEventListener("backbutton",(event) => {
      event.preventDefault();
  },false);
正如您在 Ionic docs中看到的,registerBackButtonAction返回一个函数:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读