首页 文章

从phonegap中的android硬件后退按钮退出应用程序

提问于
浏览
2

当您按下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);

3 回答

  • 1

    试试这个:

    document.addEventListener('backbutton', function(event){
      event.preventDefault(); // EDIT
      navigator.app.exitApp(); // exit the app
    });
    

    我希望它对你有所帮助 .

  • 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);
    });
    
  • 8

    如果我们在"Login"屏幕上点击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中提到的州名

相关问题