如何订阅Ionic 2 platform.pause EventEmitter?

时间:2016-06-01 09:27:28

标签: ionic-framework angular ionic2

我尝试使用以下代码进行订阅,但它不起作用。

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')
    });
  }
}

我使用Ionic 2和TypeScript,Angular 2.由于platform.pause是Ionic 2提供的EventEmitter,我想它应该可以订阅。但是,当我将应用程序置于后台时,console.log('pause')不会被触发。

我应该将Platform添加到提供商或类似的东西吗?另外,this.platform不是nullthis.platform.ready().then(()=>{console.log('ready')})效果很好。

1 个答案:

答案 0 :(得分:10)

我认为你错过了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');
        });
    });
}

以上代码对我有用。希望它也能帮到你。