programing

페이지를 기록에서 제거하면 "뒤로"가 제대로 작동합니다.

starjava 2023. 9. 19. 20:41
반응형

페이지를 기록에서 제거하면 "뒤로"가 제대로 작동합니다.

다른 페이지에 들어가려면 로그인해야 하는 제 앱이 있습니다.

따라서 첫 페이지는 "login"이며 이미 로그인되어 있는지 확인하고, 만약 로그인되어 있다면 메인 페이지 앱으로 리디렉션되고, 그렇지 않으면 로그인 페이지가 표시됩니다.

문제는 사용자가 로그인한 페이지 영역 안에 있다가 다시 클릭하면 "login" 페이지로 이동하고, 이미 로그인한 상태에서 메인 페이지로 다시 이동한다는 것입니다.

그래서 그는 무한한 고리에 갇혀있습니다.

기록에서 로그인 페이지를 제거하려면 어떻게 해야 합니까?

안드로이드의 "android 히스토리 스택에서 활동 제거"와 마찬가지로

이것이 해결책입니다!

간단히 사용:

  $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();
    });
};

순수한 앵귤러의 경우이를 수행하는 JS 방법(다른 답변에서 ionic 또는 javascript가 아닌 $location 서비스의 replace() 메서드(문서)를 사용합니다.

사용하다$location.url('/newpath');아니면$location.path('/newpath');각 방향으로 방향 전환을 수행하는 것처럼.그 다음에 추가합니다.$location.replace();그 직후에또는 다음과 같이 명령을 체인으로 연결할 수 있습니다.

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

빠른 검색: https://stackoverflow.com/a/8969975/185672

상위 답변:

사용하는 대신window.location = url;방향을 바꾸려면,

해라window.location.replace(url);.

replace()를 사용하면 현재 페이지가 세션 기록에 저장되지 않으므로, 사용자가 뒤로 단추를 사용하여 페이지로 이동할 수 없습니다.

언급URL : https://stackoverflow.com/questions/26441698/remove-page-from-history-so-back-will-work-properly

반응형