首页 文章

禁用硬件后退按钮

提问于
浏览
1

我正在使用离子来开发混合移动应用程序 . 我的应用包含加载应用( load.js )和核心应用( core.js ) . 当应用程序首次启动时,它将加载 load.js 并显示登录屏幕 . 用户登录后,将连接到服务器并加载 core.js . 这两个JS独立运行,无法直接通信 . load.js 仅在启动时使用,之后在后面是"sleeping" .

除了硬件后退按钮外,这种方法非常好用 . 如果 load.js 加载了离子,那么当用户点击硬件后退按钮时,应用程序将立即退出 . 我尝试了 $ionicPlatform.offHardwareBackButton() ,但没有奏效 .

那么,有没有办法删除 load.js 上的硬件后退按钮而不从中移除离子?

1 回答

  • 2

    这是我用来禁用后退按钮的服务:https://gist.github.com/mircobabini/689955216a036544d594

    .service( 'HardwareBackButtonManager', function($ionicPlatform){
      this.deregister = undefined;
    
      this.disable = function(){
        this.deregister = $ionicPlatform.registerBackButtonAction(function(e){
        e.preventDefault();
        return false;
        }, 101);
      }
    
      this.enable = function(){
        if( this.deregister !== undefined ){
          this.deregister();
          this.deregister = undefined;
        }
      }
      return this;
    })
    
    // usage
    .controller( 'YourController', function( 'HardwareBackButtonManager' ){
        HardwareBackButtonManager.disable();
    
        // re-enable it when you want,
        HardwareBackButtonManager.enable();
    })
    

相关问题