Удалить страницу из истории, поэтому "назад" будет работать правильно

У меня есть приложение, которое вам нужно зайти, чтобы войти на другие страницы.

поэтому первая страница - это "логин", и она проверяет, если вы уже вошли в систему, если вы так перенаправитесь в приложение главной страницы, если оно не покажет вам страницу входа.

теперь проблема заключается в том, что пользователь находится внутри области с занесенной в журнал страницы, и он щелкает обратно, он перейдет на страницу входа в систему и будет перенаправлен обратно на главную страницу, поскольку он уже зарегистрирован.

Итак, он застрял в бесконечном цикле.

как удалить страницу входа из истории.

как и в android "андроид удаляет активность из стека истории"

Ответы

Ответ 1

вот решение!

просто используйте:

  $ionicHistory.nextViewOptions({
     disableBack: true
  });

пример для функции входа:

$scope.login = function () {

Security.login($scope.cred.email, $scope.cred.password)
    .success(function(data) {
        Security.setUser(data.data[0]);
        $ionicHistory.nextViewOptions({
            disableBack: true
        });
        $state.go('posts', {}, {location: "replace", reload: true});
    }).error(function(data) {
        $scope.showAlert();
    });
};

Ответ 2

Для чистого метода AngularJS для достижения этого (вместо ионного или javascript в других ответах) используйте метод замены $location service (documentation):

Используйте $location.url('/newpath'); или $location.path('/newpath');, как обычно, для перенаправления в angular. А затем просто добавьте $location.replace(); сразу после него. Или вы можете связать команды следующим образом:

$location.url('/newpath').replace();

Ответ 3

Быстрый поиск: fooobar.com/info/116633/...

Верхний ответ:

Вместо того, чтобы использовать window.location = url; для перенаправления,

попробуйте window.location.replace(url);.

после использования replace() текущая страница не будет сохранена в сеансе история, то есть пользователь не сможет использовать кнопку "Назад", чтобы перейдите к нему.