2017-07-06 1 views
0

Ionic hat eine andere Navigation, wenn Sie eine Funktion aus dem seitlichen Menü drücken. Wenn Sie eine Zurück-Taste vom Mobilteil drücken, wird es sofort beendet.Hinzufügen von Hardware Zurück zum Home für Ionic in Android

Ich beziehe mich auf diese tutorial und die Änderungen an meiner app.js, aber es kann nicht auf die Startseite zurück, aber die App beenden.

Der Code anzunehmen (das ist, was ich brauchte):

1.if nicht zu Hause Seite, wird es zur vorherige Seite, wenn drückt Hardware-Zurück-Taste zurück 2.if es zu Hause Seite ist , drücken Sie die Hardware-Zurück-Taste, um zu sehen, ob der Benutzer wirklich beenden möchte.

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', []); 

Wie soll ich mit meinem Code zu tun, so dass ich die Hardware-Taste Arbeit bekommen können zurück?

Antwort

0

Können Sie versuchen:
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 }, ]

Verwandte Themen