无法从 ionic 注销
can't logout from ionic
您好,我遇到了 ionic 登录和注销问题。
每次注销后,我仍然可以点击后退按钮,它会带我回到我之前的页面。我可以知道如何在注销时清除或删除会话,以便用户无法从登录返回到上一页吗?
var default_stat;
$scope.logout = function(){
$ionicLoading.show({template:'Logging out....'});
$localstorage.set('loggin_state', '');
$state.go('login');
$ionicLoading.hide();
$ionicHistory.clearHistory();
$ionicHistory.clearCache();
};
在登录期间,我使用 localstorage 来指示用户已登录
$localstorage.set('loggin_state', '1');
这是因为 ionic
正在缓存视图,所以这将阻止 ionic 通过控制器。
所以你可以像下面这样破坏缓存
<ion-view cache-view="false" view-title="My Title!">
...
</ion-view>
我会这样做:
$scope.logout = function(){
$ionicLoading.show({template:'Logging out....'});
$localstorage.set('loggin_state', '');
$timeout(function () {
$ionicLoading.hide();
$ionicHistory.clearCache();
$ionicHistory.clearHistory();
$ionicHistory.nextViewOptions({ disableBack: true, historyRoot: true });
$state.go('login');
}, 30);
};
我发现添加一点延迟允许 $ionicHistory
清除缓存。
$ionicHistory.nextViewOptions({ disableBack: true, historyRoot: true });
- disableBack: 下一个视图应该忘记它的背视图,并将其设置为空。
- historyRoot: 下一个视图应该成为其历史堆栈中的根视图。
$ionicHistory.clearCache()
现在 returns 保证您可以确保清除缓存。所以你可以这样调用:
$ionicHistory.clearCache().then(function() {
//now you can clear history or goto another state if you need
$ionicHistory.clearHistory();
$ionicHistory.nextViewOptions({ disableBack: true, historyRoot: true });
$state.go('login');
})
上面的超时之类的东西是不需要的
您好,我遇到了 ionic 登录和注销问题。
每次注销后,我仍然可以点击后退按钮,它会带我回到我之前的页面。我可以知道如何在注销时清除或删除会话,以便用户无法从登录返回到上一页吗?
var default_stat;
$scope.logout = function(){
$ionicLoading.show({template:'Logging out....'});
$localstorage.set('loggin_state', '');
$state.go('login');
$ionicLoading.hide();
$ionicHistory.clearHistory();
$ionicHistory.clearCache();
};
在登录期间,我使用 localstorage 来指示用户已登录
$localstorage.set('loggin_state', '1');
这是因为 ionic
正在缓存视图,所以这将阻止 ionic 通过控制器。
所以你可以像下面这样破坏缓存
<ion-view cache-view="false" view-title="My Title!">
...
</ion-view>
我会这样做:
$scope.logout = function(){
$ionicLoading.show({template:'Logging out....'});
$localstorage.set('loggin_state', '');
$timeout(function () {
$ionicLoading.hide();
$ionicHistory.clearCache();
$ionicHistory.clearHistory();
$ionicHistory.nextViewOptions({ disableBack: true, historyRoot: true });
$state.go('login');
}, 30);
};
我发现添加一点延迟允许 $ionicHistory
清除缓存。
$ionicHistory.nextViewOptions({ disableBack: true, historyRoot: true });
- disableBack: 下一个视图应该忘记它的背视图,并将其设置为空。
- historyRoot: 下一个视图应该成为其历史堆栈中的根视图。
$ionicHistory.clearCache()
现在 returns 保证您可以确保清除缓存。所以你可以这样调用:
$ionicHistory.clearCache().then(function() {
//now you can clear history or goto another state if you need
$ionicHistory.clearHistory();
$ionicHistory.nextViewOptions({ disableBack: true, historyRoot: true });
$state.go('login');
})
上面的超时之类的东西是不需要的