Удалить страницу из истории, поэтому "назад" будет работать правильно
У меня есть приложение, которое вам нужно зайти, чтобы войти на другие страницы.
поэтому первая страница - это "логин", и она проверяет, если вы уже вошли в систему, если вы так перенаправитесь в приложение главной страницы, если оно не покажет вам страницу входа.
теперь проблема заключается в том, что пользователь находится внутри области с занесенной в журнал страницы, и он щелкает обратно, он перейдет на страницу входа в систему и будет перенаправлен обратно на главную страницу, поскольку он уже зарегистрирован.
Итак, он застрял в бесконечном цикле.
как удалить страницу входа из истории.
как и в 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() текущая страница не будет сохранена в сеансе история, то есть пользователь не сможет использовать кнопку "Назад", чтобы перейдите к нему.