如何解雇的平台简历所有弹出窗口?

问题描述 投票:0回答:3

在我的应用程序,我有这样的警告:

let confirm = this.alertCtrl.create({
                    title: 'Blabla',
                    message: 'blablabla',
                    buttons: [button1, button2, button3],
                    enableBackdropDismiss: false
                });
                confirm.present();

此外,当应用程序被恢复时,应用程序应该重定向到登录页面。在做这项工作没有问题。

问题来了,当我打开弹出窗口并恢复该应用程序。该应用程序正确地重定向,但弹出保持打开。

是否有解决方案,以编程方式关闭所有打开的弹出窗口?恢复功能是从app.component称为:

this.platform.resume.subscribe(() => {});

出于这个原因,我不能打电话确认变量,并关闭这个弹出。

angular ionic-framework ionic2
3个回答
1
投票

您可以订阅来自不同地方的同一事件。所以,你可以从那里您this.platform.resume.subscribe(() => {});变量访问组件调用confirm


1
投票

因为我的代表处不高,我不能添加在Sabari的回答评论够了,但是我可以证实,他的方法的工作原理。我目前正在执行我的组件的方法,让应用程式当用户按设备的后退按钮回到它的步骤,但并AlertController,AlertSheetController的情况下,类似的是有问题的。

我相比,他的解决方案所做的唯一的变化是实现了一个名为logoutStarted布尔值,更改为true,每当AlertController提出警告。

if (this.alerts.length > 0 || this.logoutStarted) { 
        this.alerts.forEach(i => {
            i.dismiss();
            this.alerts = [];
            this.logoutStarted = false;
        });
      }

这样做,我能够从该方法this.platform.registerBackButtonAction关闭警报(()=> {}


0
投票

通过调用presentAlert()方法打开从常用页面(供应商)的警报。

而在认购的onResume,调用dismissAlert()方法关闭所有打开的警报。

alerts: Alert[] = [];

 presentAlert() {
        let confirm = this.alertCtrl.create({
            title: 'Blabla',
            message: 'blablabla',
            buttons: [button1, button2, button3],
            enableBackdropDismiss: false
        });
        this.alerts.push(confirm);
        confirm.present();
    }

    dismissAlert() {
        console.log('Dismissed alert');
        if (this.alerts.length) {
            this.alerts.forEach(e => {
                e.dismiss();
            });
        }
        this.alerts = [];
    }
© www.soinside.com 2019 - 2024. All rights reserved.