2016-11-05 50 views
5

我很驚訝沒有找到任何線程已經在該主題上創建。離子2如何使用科爾多瓦事件暫停繼續

離子2存在的頁面中NavController生命週期:ionView[didLoad|didLeave|...]

而且還有一些應該在Cordova events被稱爲像這樣: document.addEventListener("pause", onPause, false);

我在,我想情況獲得科爾多瓦事件。頁面的離子生命週期並不合適,因爲當設備進入onResume狀態時(無論顯示哪個頁面),我想要做的事情都需要發生。

我還沒有嘗試過,因爲我希望能在這裏找到一個不錯的領先優勢之前一直下去,但我有一種感覺,document將無法​​從Angular2,Ionic2訪問的,我會可能需要添加一項服務才能訪問window,正如here所解釋的那樣。

還是有其他已知的方式來訪問document.addEventListener(...)時,在離子2?

回答

23

它工作在離子2的方式是詳細here

基本上,你需要注入在你的頁面的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(); 
    } 
} 
+0

我現在不會嘗試,但這似乎是正確的和記錄,所以我驗證答案。 – nyluje

+0

暫停時可以做些什麼?至於什麼是暫停和恢復? – SR1

3

我也能從Ionic2頁面的構造函數方法中獲取document.addEventListener

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

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