使用 ionic 4,尝试在应用程序关闭之前使用硬件后退按钮按下事件向用户发出退出警报消息



在我的初始阶段。我正在尝试给出"退出应用程序 - 是/否?当用户从登录页面或主页(登录后(按下硬件后退按钮时发出警报。 我面临的问题是,当我按下后退按钮时,退出警报消息出现在每个页面上,而不仅仅是在登录或主页上。此外,无论我是否在警报框中按"否"选项,都会自动向后导航。] 抱歉,如果做错了什么,这是我在这里的第一篇文章。 我使用的代码附在下面-

import { Component, OnInit } from '@angular/core';
import{ Router } from '@angular/router';//
import { AlertController } from '@ionic/angular';
import { Subscription } from 'rxjs';
@Component({
selector: 'app-streams-list',
templateUrl: './streams-list.page.html',
styleUrls: ['./streams-list.page.scss'],
})
export class StreamsListPage implements OnInit {
subscripcion: Subscription;
constructor(
public router:Router,
public alertController: AlertController) {}
ngOnInit() {
this.getBackButtonClick();
}

getBackButtonClick(){
this.subscripcion = this.platform.backButton.subscribe(()=>{
//navigator['app'].exitApp();
this.ClosingApp();
});
}

async ClosingApp()
{
let alert = await this.alertController.create({
header: 'Confirm',
message: 'Message to confirm!!!',
buttons: [{
text: "OK",
handler: () => { this.exit() }
}, {
text: "Cancel",
role: 'cancelar',
}]
})
alert.present();
}
exit()
{
navigator["app"].exitApp();
}

}

您可以尝试基于路由的此方法。 在app.component.ts

constructor(private router: Router){}

在您的getBackButtonClick()

getBackButtonClick(){
this.subscripcion = this.platform.backButton.subscribe(()=>{
if (this.route.url == '/login' || this.route.url == '/home'){ //please change if your path name is different for login and home
this.ClosingApp();
}
});
}

此外,您需要取消订阅此

ngOnDestroy() {
this.platform.backButton.unsubscribe();
}

您需要取消订阅该this.platform.backButtonngOnDestroy生命周期方法中可观察到的,如下所示:

ngOnDestroy() {
this.subscription.unsubscribe();
}

最新更新