离子android后退按钮导航到上一页不起作用

时间:2017-07-04 05:46:00

标签: android ionic-framework back

我正在尝试在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')


});

1 个答案:

答案 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();
      }