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

时间:2015-10-02 03:37:17

标签: android cordova ionic-framework

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

$ionicPlatform.onHardwareBackButton(function() {
  alert("click on hardware back button");
 }

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

1 个答案:

答案 0 :(得分:11)

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

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

运行应用程序时必须注册偶数:

.run(function($ionicPlatform) {
        $ionicPlatform.registerBackButtonAction(function(e) {
            e.preventDefault();
        }, 1000);   
});

这是签名:

registerBackButtonAction(callback, priority, [actionId])

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

  

现有后退按钮挂钩的优先级如下:
  返回上一个视图= 100
  关闭侧菜单= 150
  解除模态= 200
  关闭行动表= 300
  关闭popup = 400
  关闭加载overlay = 500
  您的后退按钮操作将覆盖上述每个优先级低于您提供的优先级的操作。例如,一个   分配优先级为101的操作将覆盖'返回   以前的观点'行动,但不是任何其他行动。

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