IONIC4 监听返回键退出APP

1. app.component.ts增加方法

    sideMenuDisabled = true;
    backButtonPressed: boolean = false; //用于判断返回键是否触发
    customBackActionSubscription: Subscription;
    url;

    registerBackButtonAction() {

        try {
            this.customBackActionSubscription = this.platform.backButton.subscribe(() => {
                if (this.url == '/index' || this.url == '/login') {
                    if (this.backButtonPressed) {
                        navigator['app'].exitApp();
                        this.backButtonPressed = false;
                    } else {
                        this.loaddingSvc.presentAlert("再按一次退出該應用");
                        this.backButtonPressed = true;
                        setTimeout(() => this.backButtonPressed = false, 2000);
                    }
                } else if (this.url == '/workorder') {
                } else {
                    this.navController.back();
                }
            });
        } catch (error) {

        }

    }

    initRouterListen() {
        this.router.events.subscribe(event => { // 需要放到最后一个执行
            if (event instanceof NavigationEnd) {
                this.url = event.url;
            }
        });
    }

2. 构造方法中使用

  
    constructor(
        private platform: Platform,
        private splashScreen: SplashScreen,
        private statusBar: StatusBar,
        private codePush: CodePush,
        private loaddingSvc: LoaddingSvc,
        private router: Router,
        private jpushPlugin: JpushPlugin,
        private jPush: JPush,
        private navController: NavController,

    ) {
        this.initializeApp();
        this.initRouterListen();
    }

3. initializeApp() 中增加

          this.registerBackButtonAction(); //注册返回按键事件
          this.platform.resume.subscribe(); //弹出框 

退出APP 关键代码 为:

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

推荐阅读更多精彩内容