Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 禁用硬件后退按钮_Angularjs_Cordova_Ionic Framework - Fatal编程技术网

Angularjs 禁用硬件后退按钮

Angularjs 禁用硬件后退按钮,angularjs,cordova,ionic-framework,Angularjs,Cordova,Ionic Framework,我正在使用ionic开发混合移动应用程序。我的应用程序包含加载应用程序(load.js)和核心应用程序(core.js)。当应用程序首次启动时,它将加载load.js,并显示登录屏幕。一旦用户登录,它将连接到服务器并加载core.js。这两个JS独立运行,无法直接通信load.js仅在启动时使用,之后在后面“休眠” 这种方法非常有效,除了硬件后退按钮。如果load.js加载了ionic,那么当用户单击硬件后退按钮时,应用程序将立即退出。我尝试了$ionicPlatform.offHardware

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

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


那么,有没有一种方法可以在不删除ionic的情况下删除load.js上的硬件后退按钮?

这是我用来禁用后退按钮的服务:


如果答案解决了您的问题,您能将其标记为“已接受”吗?:)@用户1995781:你解决问题了吗?正在寻找类似于卡尔答案的实现,但我无法获得预期的最终结果:(
.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();
})