Angularjs 禁用硬件后退按钮
我正在使用ionic开发混合移动应用程序。我的应用程序包含加载应用程序(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
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();
})