zoukankan      html  css  js  c++  java
  • ionic3 安卓硬件返回

    platform.ready().then(() => {
    
          this.platform.registerBackButtonAction(() => {
    
            let activePortal = this.ionicApp._modalPortal.getActive() ||this.ionicApp._overlayPortal.getActive();
            console.log(activePortal)
            let loadingPortal = this.ionicApp._loadingPortal.getActive();
            if (activePortal) {
    //其他的关闭 activePortal.dismiss().catch(() => { }); activePortal.onDidDismiss(() => { }); return; } if (menuCtrl.isOpen()) { 
    menuCtrl.close(); console.log("closing menu"); return; } if (loadingPortal) { //loading的话,返回键无效 return; }
    //获取NavController if(this.keyboard.isOpen()){ this.keyboard.close(); return; }
    let activeNav: NavController = this.appCtrl.getActiveNav();
    console.log(this.appCtrl); console.log(activeNav)
    //如果可以返回上一页,则执行pop
    if (activeNav.canGoBack()) { activeNav.pop(); } else {
    //执行退出 this.showExit();
    } });
    });
      private alertT(content){
        this.alert = this.alertCtr.create({
          // spinner: 'hide',
          title:''  ,
          enableBackdropDismiss:false,
          // duration: 3000
        });
        this.alert.present();
      }
      //退出应用方法
      private showExit(): void {
        //如果为true,退出
        if (this.backButtonPressed) {
          this.platform.exitApp();
        } else {
          //第一次按,弹出Toast
          if (localStorage.getItem("language") === 'zh') {
            this.commonUtils.showToast("再按一次退出应用", 2000)
          } else {
            this.commonUtils.showToast("Press again to exit the app", 2000)
          }
          // this.toastCtrl.create({
          //     message: '再按一次退出应用',
          //     duration: 2000,
          //     position: 'bottom'
          // }).present();
          //标记为true
          this.backButtonPressed = true;
          //两秒后标记为false,如果退出的话,就不会执行了
          setTimeout(() => this.backButtonPressed = false, 2000);
        }
      }

    主要解决的问题是:modal 的关闭

    代码:

    let activePortal = ionicApp._loadingPortal.getActive() ||
                   ionicApp._modalPortal.getActive() ||
                   ionicApp._toastPortal.getActive() ||
                   ionicApp._overlayPortal.getActive();
    
                if (activePortal) {
                   ready = false;
                   activePortal.dismiss();
                   activePortal.onDidDismiss(() => { ready = true; });
    
                   Logger.log("handled with portal");
                   return;
                }
    
                if (menuCtrl.isOpen()) {
                   menuCtrl.close();
    
                   Logger.log("closing menu");
                   return;
                }
    

      

      另外本来 这块内容是写再指令里的发现 指令里不能用ionicApp 这个方法,最好把内容放到初始化位置。

  • 相关阅读:
    一些总结与思考(聊聊最近,希望对大家有所帮助)
    操作符、语句、函数——Javascript高级程序设计
    Javascript高级程序设计——语法、关键字、保留字、变量、数据类型
    Javascript高级程序设计——Javascript简史+使用Javascript
    Angular.js!(附:聊聊非原生框架项目)
    JS事件绑定深入
    Javascript事件绑定及深入
    实现API管理系统的几个重要关键词
    实现API优先设计的重要性和实现方式
    对API进行版本控制的重要性和实现方式
  • 原文地址:https://www.cnblogs.com/wupeng88/p/9951252.html
Copyright © 2011-2022 走看看