Angular Ionic 3-防止浏览器关闭

Angular Ionic 3-防止浏览器关闭,angular,dom,ionic3,Angular,Dom,Ionic3,当用户试图关闭页面时(单击浏览器窗口上的X按钮或离开页面),我需要发送一条消息,如“确定吗?”并执行一些操作 我正在使用离子3,这是我的配置 cli包:(/home/ubuntu/workspace/mHS/node_模块) 全球方案: cordova (Cordova CLI) : 7.0.1 @ionic/app-scripts : 3.0.0 Cordova Platforms : android 6.3.0 browser 4.1.0 ios 4.4.0 Ionic Framewo

当用户试图关闭页面时(单击浏览器窗口上的X按钮或离开页面),我需要发送一条消息,如“确定吗?”并执行一些操作

我正在使用离子3,这是我的配置

cli包:(/home/ubuntu/workspace/mHS/node_模块)

全球方案:

cordova (Cordova CLI) : 7.0.1 
@ionic/app-scripts : 3.0.0
Cordova Platforms  : android 6.3.0 browser 4.1.0 ios 4.4.0
Ionic Framework    : ionic-angular 3.7.1
本地套餐:

cordova (Cordova CLI) : 7.0.1 
@ionic/app-scripts : 3.0.0
Cordova Platforms  : android 6.3.0 browser 4.1.0 ios 4.4.0
Ionic Framework    : ionic-angular 3.7.1
系统:

Node : v6.11.2
npm  : 5.3.0 
OS   : Linux 4.9
杂项:

backend : legacy
我尝试了不同的方法,但没有成功:

1-离子生命周期挂钩

import { Component, ViewChild } from '@angular/core';
import { NavController, Events, LoadingController, Platform } from 'ionic-angular';

@Component({
  selector: 'page-signup',
  templateUrl: 'signup.html'
})

export class SignupPage {

....

ionViewWillUnload() {
    console.log("I'm about to unload");
  }

}
2-主机侦听器

import { Component, HostListener, ViewChild } from '@angular/core';
import { NavController, Events, LoadingController, Platform } from 'ionic-angular';
...
@Component({
  selector: 'page-signup',
  templateUrl: 'signup.html'})

export class SignupPage {

  @HostListener('window:beforeunload', ['$event'])
   handler(event: Event) {
    console.log('event logged')
  }

...
}

3-内部HTML

<ion-header>
    <ion-navbar>
        <ion-title>{{pageTitle}}</ion-title>
    </ion-navbar>
</ion-header>

<ion-content onbeforeunload="myScript()">
....
</ion-content>

{{pageTitle}}
....

我遗漏了什么?

解决方案是第二个——主机侦听器;我忘了返回布尔值。 这种方法非常有效

export class SignupPage {

  @HostListener('window:beforeunload', ['$event'])
  onbeforeunload(event) {
      return this.signupCompleted;
    }
  }
  signupCompleted = false;
...
}

解决方案是2号主机侦听器;我忘了返回布尔值。 这种方法非常有效

export class SignupPage {

  @HostListener('window:beforeunload', ['$event'])
  onbeforeunload(event) {
      return this.signupCompleted;
    }
  }
  signupCompleted = false;
...
}

你能不能显示
代码
?你能不能显示
代码