首页 文章

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

提问于
浏览
2

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

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

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

1 回答

  • 11

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

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

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

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

    这是签名:

    registerBackButtonAction(callback, priority, [actionId])
    

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

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

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

相关问题