2016-06-20 7 views
4

Ich möchte eine native BackButton Event-Handler in Ionic2 hinzufügen. Problem ist, dass Ionic2 Dokumentation sagt, registerBackButtonAction Methode von Platform Instanz zu verwenden, aber es gibt keine solche Methode.Ionic 2 - Wie man BackButton behandelt

Anstelle von registerBackButtonAction gibt es backButton Eigenschaft, die EventEmitter Typ ist (aber es funktioniert nicht, oder ich weiß nicht, wie man sich anmeldet).

Irgendwelche Ideen? Marcin

Antwort

1

Sie können mit angular2 routerOnActivate Griff .. Lage zu()

 <button danger (click)="navigateBack()">Danger</button> 

Ihre ts-Datei enthält

// Import  
    import {ComponentInstruction} from '@angular/router-deprecated'; 

    // Class 
    export class ViewImagePge { 
    public prev: ComponentInstruction; 
    } 

    public routerOnActivate(next: ComponentInstruction, prev: ComponentInstruction): void { 
     this.prev = prevInstruction; 
    } 

    // navigateBack() Function 

    public navigateBack(): void { 
    if(this.prev && this.prev.routeName === 'Foo') { 
      this.location.back(); 
     } else { 

      // can keep default path 

      this.router.navigate(['/Foo']); 
     } 
    } 
0

Sie unter Code verwenden können. Es funktioniert auf Zurück-Taste des Mobilgeräts gedrückt

platform.registerBackButtonAction(function() { 

    if(menu.isOpen()) 
       { 
       menu.close(); 
       }else 
       { 
       nav.pop(); 
       }   
    }, 100); 
1

i wurde mit Hardware backbuttons paar Tage zu tun und jetzt, nach Asing mike (von ionischen) Ich weiß, was das Problem.

Das Problem ist, dass sie keine Prioritätshierarchie haben. Standardmäßig gibt es nur eine Aktion mit dem Standardprioritätswert (0) und diese Aktion behandelt alles.

Also, wenn Sie benutzerdefinierte Aktionen hinzufügen möchten, müssen Sie die Standard-Code-Aktion in Ihrer Aktion hinzufügen, wenn Sie nicht überschreiben und Sidemenu zum Beispiel nicht schließen.

Ich habe eine demo auf Github mit einem Backbutton-Dienst und einem Seitenmenü mit zwei Seiten. Auf Seite 1 habe ich einen Doppelklick, um die App zu beenden und auf Seite 2 den Standard, auf beiden Seiten handle ich mit dem Sidemenu, um zu schließen, anstatt den Toast zu zeigen.

Für den Moment nicht handhaben modals, aber ich möchte es so bald wie möglich hinzufügen.

hoffe das kann dir helfen.

+0

Große Antwort, Ihre Erklärung hat mir geholfen! Danke – JoeriShoeby

+0

froh zu helfen :) –