2016-06-01 39 views
8

我試圖使用下面的代碼來訂閱,但它不起作用。如何訂閱Ionic 2 platform.pause EventEmitter?

import { Platform } from 'ionic-angular'; 
@Page({ 
    templateUrl: 'build/pages/test.html', 
})  
export class Test{ 
    constructor(private platform: Platform) { 
     this.platform.pause.subscribe(() => { 
     console.log('paused') 
    }); 
    } 
} 

我使用離子2打字稿,角2.如platform.pause是由離子2提供的EventEmitter,我想是應該能夠被訂閱。但是,當我將應用程序置於後臺時,console.log('pause')未被觸發。

我應該將Platform添加到供應商或類似的東西嗎?另外,這個平臺不是nullthis.platform.ready().then(()=>{console.log('ready')})完美運作。

+0

「不起作用」是什麼意思?我「暫停」不打印? –

+0

@GünterZöchbauer\t 是的,正好。它未被打印,因爲它假設爲 –

+0

這裏是什麼'this.platform.pause'?用更多代碼更新你的問題,或者你可以在plunker上重現你的問題 –

回答

8

我想你錯過platform.ready(),如下

constructor(private platform: Platform) { 
    platform.ready().then(() => {  
     this.platform.pause.subscribe(() => { 
      console.log('[INFO] App paused'); 
     }); 

     this.platform.resume.subscribe(() => { 
      console.log('[INFO] App resumed'); 
     }); 
    }); 
} 

上面的代碼爲我工作。希望它也能幫助你。