我正在尝试在ionic1 app中添加返回按钮导航,我已经注册了
.run(function($ionicPlatform)
中的后退按钮添加代码
$ionicPlatform.registerBackButtonAction(function (event) {
event.preventDefault(); // Back button will DO NOTHING.
//alert("Going back!!!");
}, 100);
它会阻止Android后退按钮关闭应用程序,但我无法转到上一页。到目前为止,我已经尝试了
$ionicHistory.goBack();
和
$state.go('menu.home');
但他们不工作。如何在每次按下后退按钮时调用上一页?
以下是来自routes.js的一些州:
angular.module('app.routes', [])
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('menu.home', {
url: '/page1',
views: {
'side-menu21': {
templateUrl: 'templates/home.html',
controller: 'homeCtrl'
}
}
})
.state('menu', {
url: '/side-menu21',
templateUrl: 'templates/menu.html',
controller: 'menuCtrl'
})
.state('menu.policySummaries', {
url: '/page4',
views: {
'side-menu21': {
templateUrl: 'templates/policySummaries.html',
controller: 'policySummariesCtrl'
}
}
})
$urlRouterProvider.otherwise('/side-menu21/page1')
});
答案 0 :(得分:0)
这样可以确保在.run函数中注入$ state和$ ionicPopup:
$ionicPlatform.registerBackButtonAction(function (event) {
if ($state.current.name == "menu.hPCompliance") {
var confirmPopup = $ionicPopup.confirm({
title: 'Exit',
template: 'Are you sure you want to close the app?',
okText: "Yes",
okType: "button-positive",
cancelText: "No",
cancelType: "button-assertive"
});
confirmPopup.then(function (res) {
if (res) {
navigator.app.exitApp();
} else {
console.log('Cancel');
}
});
}
else {
window.history.back();
}