Ionic 2如何使用Cordova事件暂停恢复

nyl*_*uje 11 cordova ionic2 angular

我很惊讶没有找到任何已经在该主题上创建的线程.

在Ionic 2中,NavController中存在页面的生命周期:ionView[didLoad|didLeave|...]

还有Cordova事件应该像这样调用: document.addEventListener("pause", onPause, false);

我处于一种我希望得到科尔多瓦事件的情况.页面的离子生命周期是不合适的,因为当设备进入onResume任何页面显示的状态时,我想要做的事情需要发生.

我还没有尝试过,因为我希望在此之前找到一个良好的领导继续前进,但我感觉document无法从Angular2,Ionic2访问,我可能将不得不添加服务要访问window它,这里解释.

或者document.addEventListener(...)在Ionic 2中有没有其他已知的方法可以访问?

Dav*_* M. 44

它在Ionic 2中的工作方式在此处详述

基本上,您需要Platform在页面中注入实例并订阅pause事件发射器:

import { Component } from '@angular/core';
import { Subscription } from 'rxjs';
import { Platform } from 'ionic-angular';

@Component({...})
export class AppPage {
  private onResumeSubscription: Subscription;

  constructor(platform: Platform) {
    this.onResumeSubscription = platform.resume.subscribe(() => {
       // do something meaningful when the app is put in the foreground
    }); 
  } 

  ngOnDestroy() {
    // always unsubscribe your subscriptions to prevent leaks
    this.onResumeSubscription.unsubscribe();
  }
}
Run Code Online (Sandbox Code Playgroud)


xke*_*xke 5

我还能够从Ionic2页面的构造方法中获取document.addEventListener,例如

  document.addEventListener("pause", function() {
    // do something
  }, true);

  document.addEventListener("resume", function() {
    // do something
  }, true);
Run Code Online (Sandbox Code Playgroud)