离子防止硬件后退按钮退出应用程序

use*_*781 2 android cordova ionic-framework

我正在使用离子来开发混合应用程序.但最近我发现每当我点击硬件后退按钮时,无论在哪个页面上,应用程序都会退出.我尝试添加以下代码,它确实显示了警告框,但这并不会阻止应用程序退出(不会单击警报框).

$ionicPlatform.onHardwareBackButton(function() {
  alert("click on hardware back button");
 }
Run Code Online (Sandbox Code Playgroud)

如何阻止应用程序退出硬件后退按钮?

Lef*_*tyX 11

通常,当您在根视图上并且堆栈上没有历史记录时,应用程序存在.

您可以拦截事件registerBackButtonAction并取消操作.

当您运行应用程序时,必须注册均匀:

.run(function($ionicPlatform) {
        $ionicPlatform.registerBackButtonAction(function(e) {
            e.preventDefault();
        }, 1000);   
});
Run Code Online (Sandbox Code Playgroud)

这是签名:

registerBackButtonAction(callback, priority, [actionId])
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,优先级是第二个参数.根据文件:

现有后退按钮挂钩的优先级如下:
返回上一个视图= 100
关闭侧面菜单= 150
关闭模式= 200
关闭操作表= 300
关闭弹出= 400
关闭加载叠加= 500
您的后退按钮操作将覆盖每个优先级低于您提供的优先级的操作.例如,分配优先级为101的操作将覆盖"返回上一个视图"操作,但不会覆盖任何其他操作.

我用1000来覆盖其他每个动作.注册和收听它总是更好,即使你想要在取消事件之前检查事件.如果您遵循此路径,并且在某些时候您的应用程序通过某种导航变得更加复杂,您将无法退出应用程序.