禁用硬件后退按钮

时间:2015-11-12 09:41:38

标签: angularjs cordova ionic-framework

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

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

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

1 个答案:

答案 0 :(得分: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();
})