2016-06-20 1 views
4

Я хочу добавить обработчик события native BackButton в Ionic2. Проблема в том, что документация Ionic2 говорит об использовании метода registerBackButtonAction экземпляра Platform, но такого метода нет.Ionic 2 - как обращаться с обратным управлением

Вместо registerBackButtonAction есть backButton свойство EventEmitter (но оно не работает, или я не знаю, как подписаться).

Любые идеи? Marcin

ответ

1

Вы можете обращаться с angular2 routerOnActivate .. Место .Задняя()

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

Файл TS содержит

// 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

Вы можете использовать ниже код. Она работает на задней нажатую кнопку мобильного устройства

platform.registerBackButtonAction(function() { 

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

я имел дело с аппаратным backbuttons нескольких дней, и теперь, после asing микрофона (от ионного) я знаю, Что проблемы.

Проблема в том, что у них нет приоритетов hierachy. По умолчанию есть только одно действие с значением приоритета по умолчанию (0), и это действие обрабатывает все.

Поэтому, если вы хотите добавить пользовательские действия, вам нужно добавить действие по умолчанию в действие, если вы не будете переопределять и не закрываете sidemenu, например.

У меня есть demo на github с сервисом backgutton и sidemenu с двумя страницами. На стр. 1 у меня есть двойной щелчок, чтобы выйти из приложения, а на странице 2 - по умолчанию, на обеих страницах я обрабатываю sidemenu, чтобы закрыть, а не показывать тост.

На данный момент не обрабатываются модальные файлы, но я хочу добавить его как можно скорее.

надеюсь, что это может вам помочь.

+0

Отличный ответ, ваше объяснение помогло мне! Спасибо – JoeriShoeby

+0

рад помочь :) –

Смежные вопросы