發表於 程式分享

ionic2 產生 event並儲存最後時間,並以Timer去計算

1.tabs.tsc


import { Component } from '@angular/core';
import { IonicPage, NavController, MenuController, Events } from 'ionic-angular';
import { Subscription } from "rxjs";
import { TimerObservable } from "rxjs/observable/timerObservable";

@IonicPage()
@Component({
  selector: 'page-tabs',
  templateUrl: 'tabs.html'
})
export class TabsPage {
  lastPing?: Date = null;
  private subscription: Subscription;
  
  constructor(public navCtrl: NavController, public menuCtrl: MenuController, public events: Events) {
  }
  
  ionViewDidLoad() {
    this.lastPing = new Date();
    this.events.subscribe('user:click', (info, time) => {
        console.log('user:click', info, 'at', time);
        this.lastPing = new Date();
    });
    
    let timer = TimerObservable.create(20000, 5000);
    this.subscription = timer.subscribe(t => {
      console.log('ionViewDidLoad t: ' + t);
      
      var now = new Date();
      var diff = this.toSeconds(now - this.lastPing);
      console.log(diff.toString());

    });
  }
  
  toSeconds(diff) {
      var ms = diff % 1000;
      diff = (diff - ms) / 1000;
      var secs = diff % 60;
      diff = (diff - secs) / 60;
      var mins = diff % 60;
      
      return mins;
  }
  
  ionViewDidLeave() {
    this.subscription.unsubscribe();
  }
    
  openMenu(menuId : any) {
    this.events.publish('user:click', 'openMenu', Date.now());    
  }  
}
    

2.結果畫面
1.PNG

發表留言