在Android中添加硬件返回按钮到Home for Ionic

时间:2017-07-06 13:51:15

标签: javascript android cordova ionic-framework

离开侧面菜单中的功能时,Ionic具有不同的导航功能。当您从听筒按下后退按钮时,它将立即退出。

我引用此tutorial并对我的app.js进行更改,但无法返回主页但退出应用。

代码假设(这是我需要的):

1.如果不在主页,如果按下硬件后退按钮,它将返回上一页 2.如果它在主页,按下硬件后退按钮将弹出以确认用户是否真的要退出。

app.js

angular.module('myapp', ['ionic', 'myapp.controllers', 'myapp.factories'])
.run(function($ionicPlatform,$state,$ionicHistory,$ionicPopup) {
  $ionicPlatform.ready(function() {
if (window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      cordova.plugins.Keyboard.disableScroll(true);
    }
      if (window.StatusBar) {
        // org.apache.cordova.statusbar required
        StatusBar.styleDefault();
      }

    $ionicPlatform.registerBackButtonAction(function (event) {
    event.preventDefault();
    if ($state.current.name == "app.home") {
      var confirmPopup = $ionicPopup.confirm({
        title: 'Exit',
        template: 'Confirm Exit'
      });

      confirmPopup.then(function (res) {
        if (res) {
          navigator.app.exitApp();
        }

      });
    } else {
      $ionicHistory.nextViewOptions({ disableBack: true });
      $state.go('app.home');
    }
  }, 100);//registerBackButton

});
})

  $stateProvider
      .state('app', {
        url: '/app',
        abstract: true,
        templateUrl: 'templates/menu.html',
        controller: 'menuCtrl'
      })
      .state('app.home', {
        url: '/home',
        views: {
          'menuContent': {
            templateUrl: 'templates/home.html',
            controller: 'homeCtrl'
          }
        }
      })
      .state('app.personalitem', {
        url: '/personalitem',
        views: {
          'menuContent': {
            templateUrl: 'templates/personalitem.html',
            controller: 'personalitemCtrl'
          }
        }
      })
      .state('app.pStock', {
        url: '/pStock',
        views: {
          'menuContent': {
            templateUrl: 'templates/pStock.html',
            controller: 'pStockCtrl'
          }
        }
    });
angular.module('myapp.factories', []);
angular.module('myapp.controllers', []);

如何处理我的代码,以便我可以让硬件返回按钮工作?

1 个答案:

答案 0 :(得分:0)

你能试试吗:
menu.ts
openPage(page) { this.nav.setRoot(page.component); }

menu.html
<button class="menuList" menuClose ion-item *ngFor="let p of pages" (click)="openPage(p)"> {{p.title}} </button>

app.component.ts
pages: any[] = [ { title: 'Welcome', component: IntroPage }, { title: 'Home', component: TabsPage }, ]