2016-12-29 4 views
2

Я пытаюсь выполнить метод, когда пользователь покидает приложение. Я попробовал все:Ionic 2 выполнить метод, когда пользователь покидает приложение

ionViewWillUnload() { 
    console.log("Wlill unload"); 
    this.leaveRoom(); 
} 

onDestroy() { 
    console.log("DESTROY"); 
    this.leaveRoom(); 
} 

ionViewWillLeave() { 
    this.leaveRoom(); 
} 

Unfortunetly они не выполняются, когда пользователь закрывает приложение или когда пользователь обновить страницу.

Любая идея?

ответ

10
  1. Импорт Платформа:

    import { Platform } from 'ionic-angular';

  2. Добавить платформу в constuctor:

    constructor(public navCtrl: NavController, platform: Platform)

  3. подписаться на платформу pause и resume:

     platform.ready().then(() => { 
         this.platform.pause.subscribe(() => { 
          console.log('[INFO] App paused'); 
         }); 
    
         this.platform.resume.subscribe(() => { 
          console.log('[INFO] App resumed'); 
         }); 
        }); 
    
+0

upVote/downВойти, отметить Разрешить/отметить Неразрешенный и теперь вы отвечаете сами, что дальше?И вы просто используете методы, о которых я упоминал. – avilac

+0

Я обозначил его как разрешенный, потому что, хотя он работает, но это не так. вам нужно подписаться на паузу платформы и возобновить ее. Вместо того, чтобы редактировать весь ваш ответ, я создал новый – TheUnreal

+0

, событие «пауза», похоже, не срабатывает при IOS, когда приложение выключено. только когда он помещается в фоновом режиме. –

0

Я думаю, что вы ищете, можно найти здесь:

http://cordova.apache.org/docs/en/6.x/cordova/events/events.html#endcallbutton

Конкретно это событие:

function onEndCallKeyDown() { 
    // Handle the end call button 
} 

Для того, чтобы сделать работу событий, вы должны объявить этот приемник первым :

document.addEventListener("endcallbutton", onEndCallKeyDown, false); 

OnPause События:

document.addEventListener("pause", onPause, false); 

function onPause() { 
    // Handle the pause event 
} 

onResume событие

document.addEventListener("resume", onResume, false); 

function onResume() { 
    // Handle the resume event 
} 

Надеется, что это помогает!

+0

Это мероприятие поддерживает только «ежевики10». – TheUnreal

+0

Я отредактировал ответ, теперь он указывает на настоящую версию кордовы. – avilac

+0

@ TheUnreal Здесь у вас есть список поддерживаемых платформ, обновленных для новой версии: http://cordova.apache.org/docs/en/6.x/guide/support/index.html – avilac

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