ionic 3 App重新启动而不是重新开始

时间:2018-08-03 09:42:02

标签: android cordova ionic-framework ionic3

我已经创建了两个页面的ionic App,如果我导航到Page2,则从Page1开始。按硬件后退按钮导航回到Page1,然后再次将硬件退回到后台。如果从后台打开该应用,则会重新加载启动屏幕,然后重新启动应用。

如何停止重新启动应用程序?

4 个答案:

答案 0 :(得分:1)

我已经使用插件https://ionicframework.com/docs/native/app-minimize/来最小化该应用程序

在app.component.ts

从'@ ionic-native / app-minimize'导入{AppMinimize}; 从“ ionic-angular”导入{App,Platform};

构造函数(平台:平台,公共应用程序最小化:AppMinimize,公共应用程序:应用程序){       platform.ready()。then(()=> {           platform.registerBackButtonAction(()=> {

        let nav = app.getActiveNavs()[0];
        let activeView = nav.getActive();

            if (activeView.name === "Page1") {
                /** minimize the app in background **/
                this.appMinimize.minimize();
            }
            else {
                nav.pop();
        }

      });
  });

}

答案 1 :(得分:0)

您可以显示警报以确认退出应用。通过以下方式修改 app.component.ts 文件

  import { Platform, IonicApp } from 'ionic-angular';

  constructor(public platform: Platform, private ionicApp: IonicApp){}

  initializeApp() {
    this.platform.ready().then(() => {
      //back button handle
      this.platform.registerBackButtonAction(() => {
          if (this.navctrl.canGoBack()) {
            this.navctrl.pop();
          } else {
            this.showAlert();
          }
      });
    });
  }

  showAlert() {
    let confirm = this.alertCtrl.create({
      title: 'Exit Application?',
      message: 'Do you want to exit this application?',
      buttons: [
        {
          text: 'No',
          handler: () => {}
        },
        {
          text: 'Yes',
          handler: () => {
            navigator['app'].exitApp();
          }
        }
      ]
    });
    confirm.present();
  }

或者您可以简单地按“主页”按钮而不是“后退”按钮。因此它不会重新启动您的应用。

答案 2 :(得分:0)

如您在评论中解释自己一样,这可能会有所帮助吗?

请按照以下步骤操作:

第一个步骤::在页面上按反压注册一个功能,您希望在该页面上执行“暂停时自定义”操作!

第2步::使用该自定义方法注册一个用户,然后调用ON PAUSE LISTENER,然后您就可以在其中完成功能了

让我们假设您有两个用于保存订户事件的字段变量 像

sub1$:any
sub2$:any

在构造函数中,您可以执行以下操作!

  this.platform.ready().then(() => {
    this.platform.registerBackButtonAction(() => {


          this.sub1$=this.platform.pause.subscribe(() => {        
              console.log('****YOURPAGE PAUSED****');
            this.appMinimize.minimize();
          }); 
        });

  });

注意!!暂停事件可能被多次调用,因此您也应该取消订阅!像这样离开页面

ionViewWillUnload() {
    this.sub1$.unsubscribe();
    this.sub2$.unsubscribe();
  }

答案 3 :(得分:0)

该线程已有几个月的历史,但让我也添加此解决方案。

在您的 app.module.ts 中,将其添加(或修改)到您的导入文件中:

IonicModule.forRoot(MyApp, { navExitApp: false}),

这将防止您在导航堆栈的根页面中关闭应用程序。

但是请注意,如果您想将应用程序推送到后台,则仍然必须以其他方式进行处理。 此解决方案只能防止关闭您的应用。