首页 文章

离子取消硬BACK按钮覆盖

提问于
浏览
3

有关覆盖Ionic中的物理Android BACK按钮的问题,以提供自定义行为:

但是你如何 cancel the override 恢复默认行为?


我已经尝试更改处理程序的优先级,希望默认处理程序可能具有更高的优先级 .

var customBackButton = function() {
    console.log("this is custom behaviour");
};
$ionicPlatform.registerBackButtonAction(
    customBackButton, 101
);
$scope.$on('$destroy', function() {
    $ionicPlatform.registerBackButtonAction(
        customBackButton, 0
    );
});

这不起作用 .


1 回答

  • 2

    Ionic v1 solution (out of date)


    根据Ionic docs for $ionicPlatformregisterBackButtonAction() 返回:

    一个函数,在调用时,将取消注册此backButtonAction .

    这可以在 registerBackButtonAction() 的代码中看到:

    // return a function to de-register this back button action
      return function() {
        delete self.    [action.id];
      };
    

    因此,取消注册/取消自定义行为的正确方法是在销毁控制器时调用该函数:

    var customBackButton = function() {
        console.log("this is custom behaviour");
    };
    
    // registerBackButtonAction() returns a function which can be used to deregister it
    var deregisterBackButtonAction = $ionicPlatform.registerBackButtonAction(
        customBackButton, 101
    );
    
    $scope.$on('$destroy', function() {
        deregisterBackButtonAction();
    });
    

    可以在此处找到一个更完整的示例,显示如何覆盖和恢复硬按钮和软按钮:

相关问题