当您按下android设备中的硬件后退按钮退出phonegap / ionic应用程序时,有没有办法显示确认弹出窗口?
在当前状态下,我的应用会在点击后退按钮后继续前一个状态。
在应用程序中,无论您在何处按下后退按钮,都有办法退出应用程序吗?
我找到了这段代码,但它似乎不起作用:
$ionicPlatform.registerBackButtonAction(function() {
var confirmPopup = $ionicPopup.confirm({
title: 'Sign Out Confirm',
template: 'Are you sure you want to Logout?'
});
confirmPopup.then(function(res) {
if (res) {
$rootScope.rootScopeUserTransactionPassword = null;
$state.go('app.playlists');
} else {
console.log('You are not sure');
}
});
}, 100);
答案 0 :(得分:8)
试试这个:
document.addEventListener('backbutton', function(event){
event.preventDefault(); // EDIT
navigator.app.exitApp(); // exit the app
});
我希望它可以帮到你。
答案 1 :(得分:2)
它会在退出规定的时间戳之前询问您:再次按下后退按钮退出。如果它是仪表板页面,那么它会询问是否退出? 我希望它能解决你的问题。
.run(function($rootScope, $ionicPlatform, $ionicHistory){
$ionicPlatform.registerBackButtonAction(function(e) {
if ($ionicHistory.currentView().stateName == 'dashboard') {
Dialogs.showConfirm('Do you want to logout?', function(buttonIndex) {
if (buttonIndex == 1)
User.clear();
}, 'Logout', ['Yes', 'No']);
} else
if ($rootScope.backButtonPressedOnceToExit) {
ionic.Platform.exitApp();
} else if ($ionicHistory.backView()) {
$ionicHistory.goBack();
} else {
$rootScope.backButtonPressedOnceToExit = true;
window.plugins.toast.showShortCenter(
"Press back button again to exit",
function(a) {},
function(b) {}
);
setTimeout(function() {
$rootScope.backButtonPressedOnceToExit = false;
}, 2000);
}
e.preventDefault();
return false;
}, 101);
});
答案 2 :(得分:1)
如果我们在“登录”屏幕上点击Android设备上的按钮,则关闭应用程序。
在你的app.js中,你可能有这样的东西:
app.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
$stateProvider.state('login', {
url : '/',
}).state('login', {
url : '/login',
views : {
contentView : {
templateUrl : 'login.html',
controller : 'LoginCtrl'
}
}
});
所以你要做的就是在同一个文件中添加这个方法:
app.run(function($ionicPlatform) {
$ionicPlatform.registerBackButtonAction(function() {
if ($state.current.name == "login") {
navigator.app.exitApp();
}
}, 100);
});
请注意,“登录”app.config
中提到的州名