0
我有一個應用程序,與用戶需要把您的憑據登錄登錄視圖。不容禁用後退按鈕(歷史,緩存,...)在離子
這是我的index.html:
<!DOCTYPE html>
<html ng-app="starter">
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title>Services for Partners</title>
<link href="lib/ionic/css/ionicons.min.css" rel="stylesheet">
<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<script src="lib/ionic/js/ionic.bundle.js"></script>
<!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above
<link href="css/ionic.app.css" rel="stylesheet">
-->
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
<!-- your app's css and js -->
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
<script src="js/routes.js"></script>
<script src="js/services.js"></script>
<link href="css/app.css" rel="stylesheet">
</head>
<body>
<div>
<ion-nav-view animation="slide-right-left" cache-view="false"></ion-nav-view>
</div>
<div class="bar bar-footer bar-dark">
<div>copyright</div>
</div>
</body>
</html>
在我的index.html我使用的屬性緩存視圖= 「假」。
用戶登錄後,他重定向到主視圖。
這裏是我的家視圖的一部分:
<ion-view title="home" ng-controller="homeCtrl">
<div class="bar bar-header bar-dark">
<button class="button button-icon icon ion-gear-b"></button>
<button class="button button-icon icon ion-android-close" ng-click="closeApp()"></button>
</div>
<ion-content overflow-scroll="true" padding="true" scroll="true" class="has-header has-footer">
<!--<div class="spacer" style="width: 300px; height: 15px;"></div>-->
<div style="text-align:center;">
<img src="img/logo.png" class="logo-pequena">
</div>
<div>
在家庭觀,我有一個按鈕來退出,調用一個方法closeApp()。
這裏是我的家控制器,與我closeApp()方法:
starter.controller('homeCtrl', ['$scope', '$state', '$ionicHistory', function($scope, $state, $ionicHistory) {
$scope.closeApp = function() {
//Remove todos as infos do usuário do localStorage
localStorage.clear();
$ionicHistory.clearHistory();
$ionicHistory.clearCache();
$ionicHistory.nextViewOptions({
historyRoot: true,
disableAnimate: true,
disableBack: true
});
$state.go('login');
}
}]);
在這裏我們可以看到,我用幾個命令禁用離子歷史。
下面,是我services.js文件:
var starter = angular.module('starter.services', []);
starter.run(function($ionicPlatform,$state,$ionicHistory){
$ionicPlatform.registerBackButtonAction(function (event) {
if($state.current.name=="home"){
navigator.app.exitApp();
}
else {
$ionicHistory.backHistory();
}
}, 100);
});
這裏是我的route.js文件:
var starter = angular.module('starter.routes', []);
//Rotas do app
starter.config(['$stateProvider', '$urlRouterProvider', '$locationProvider',
function($stateProvider, $urlRouterProvider, $locationProvider) {
$stateProvider //.state(...).state(...).state(...)
//Login
.state('login', {
url: '/login',
cache: false,
templateUrl: 'templates/login.html',
controller: 'loginCtrl'
})
//Novo Usuário
.state('newuser', {
url: '/newuser',
cache: false,
templateUrl: 'templates/newuser.html',
controller: 'newUserCtrl'
})
//Esqueceu a senha
.state('forgotpwd', {
url: '/forgotpwd',
cache: false,
templateUrl: 'templates/forgotpwd.html',
controller: 'forgotPwdCtrl'
})
//Sobre
.state('about', {
url: '/about',
cache: false,
templateUrl: 'templates/about.html',
controller: 'aboutCtrl'
})
//Home
.state('home', {
url: '/home',
cache: false,
templateUrl: 'templates/home.html',
controller: 'homeCtrl'
});
// if none of the above states are matched, use this as the fallback
$urlRouterProvider.otherwise('/login');
}]);
這裏沒有任何緩存鑑於我已經配置的所有路由。
畢竟這些東西什麼都沒有發生。我的應用程序仍然允許我點擊後退按鈕(不是硬件按鈕,而是軟件按鈕)。我正在我的索尼Z3智能手機上運行的「Ionic View App」上預覽我的應用程序。
所以,如果用戶點擊登錄時視圖返回按鈕,用戶可以回到主頁,無需登錄。
我想退出應用程序。但在所有這些配置之後,我仍然遇到這個麻煩。
我需要做什麼?
我已經更新科爾多瓦和離子。這是一個錯誤還是可以解決這個問題?
謝謝。
在登陸HTML,您可以設置'<離子視圖捉迷藏後退按鈕=「真」>'欲瞭解更多信息,請參閱本文檔[鏈接](http://ionicframework.com/docs/api/directive/ionView/) – Webruster
你應該做的是註銷清除應用程序的歷史使用$ ionicHistory。請參閱http://ionicmobile.blogspot.in/2015/05/ionic-clear-history.html鏈接以清除歷史記錄。 – Rahul