Ionic学习日记9:双击退出效果

前言

ionic开发出的app还是有些不方便的地方,比如不小心按返回键退出后,再打开还得等个一段时间,所以还是做一个这个效果出来方便调试等,这个功能也是市面上app必备的
本篇日记仅涉及到homepage

home.ts
  public backButtonPressed: boolean = false;

在constructor中添加,这些都会用上

    public navCtrl: NavController,
    public platform: Platform,
    public toastCtrl: ToastController,
    public app: App

同样在constructor内添加

  this.platform.ready().then(() => {
      //双击退出
      this.platform.registerBackButtonAction(() => {

        let activeVC = this.navCtrl.getActive();
        let page = activeVC.instance;
        if (page instanceof HomePage) {
          this.showExit();
        } else {
          this.app.goBack();
        }
      }, 999)
    });

做了一个判断,主要是区分当前的页面是不是HomePage,不是得话就是正常的goBack()效果,反之就触发showExit()方法,不做区分的话,从当前页面使用setRoot的方式跳转到其他的页面也会有双击退出的这个功能(如有特别的需要,也可以不用判断是不是HomePage)
PS:后面的999代表什么意思,暂时还不清楚

在class HomePage当中添加showExit()方法

showExit() {
    if (this.backButtonPressed) {
      this.platform.exitApp();
    } else {
      let toast = this.toastCtrl.create({
        message: '再按一次退出',
        duration: 2000,
        position: 'middle'
      })
      toast.present(toast);
      this.backButtonPressed = true;
      setTimeout(() => {
        this.backButtonPressed = false;
      }, 2000)
    }
  }

使用backButtonPressed判断是否可以退出,当它为true的时候再点击,才会进入第一个if的判断,退出app

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在Ionic开发过程中会遇到很多常见的开发问题,分享一下笔者在开发过程中总结到的对这些问题的解决方案。也是接触io...
    兼续阅读 32,489评论 21 61
  • Ionic 2 专注于以标准的 HTML 、 CSS 和 JavaScript 来构建移动站点,并可以通过 Cor...
    小菜鸟爱开发阅读 2,176评论 3 12
  • 0 开始之前 通过本教程之前,您应该至少了解一些基本的Ionic 2概念。您还必须已经安装了Ionic 2 在您的...
    孙亖阅读 1,673评论 2 10
  • 吃一只芒果,果核占了一半。 于是写: 天气被秋雨赶着奔向了冬天,又想起一件趣事,于是写: 当时的心情是很绝望的。笑...
    苏白杞阅读 294评论 15 12
  • 中艺琴社成立之初,便希望能够将这太古知音,这琴筝之声,回荡于庙堂之高,诉诸于世界之远。如此,不仅让更多国人传承传统...
    中艺琴社古筝古琴_白妍阅读 1,673评论 0 2