web-dev-qa-db-ja.com

Ionic 2 Cordovaイベントの使用方法pause resume

そのトピックで作成されたスレッドが見つからないことに驚いています。

Ionic 2にページのライフサイクルがあります NavController :_ionView[didLoad|didLeave|...]_

そして Cordovaイベント があり、これはdocument.addEventListener("pause", onPause, false);のように呼び出されることになっています。

Cordovaイベントを取得したい状況にあります。 Ionicページのライフサイクルは適切ではありません。デバイスがonResumeステータスになったときにどのページが表示されても、私がやりたいことを行う必要があるからです。

私はまだ試していません。先に進み続けるためにここで良いリードを見つけたいと思っていたので、しかし私はdocumentは、Angular2、Ionic2からアクセスできず、おそらく説明されているようにwindowにアクセスするためのサービスを追加する必要があります here

または、Ionic 2?のときにdocument.addEventListener(...)にアクセスする他の既知の方法はありますか?

10
nyluje

動作方法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();
  }
}
43
David M.

また、Ionic2ページのコンストラクターメソッドからdocument.addEventListenerを取得することもできました。

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

  document.addEventListener("resume", function() {
    // do something
  }, true);
5
xke