sailei1 / blog

1 stars 0 forks source link

倒计时,微信手机休眠处理 #30

Closed sailei1 closed 5 years ago

sailei1 commented 5 years ago
    import TimerCountDown from '../../plugins/timer-countdown.js';
   resetTimeCountDown(){

                var vm = this;
                if (timerCountDown) {
                    timerCountDown.destroy();
                }
                timerCountDown = new TimerCountDown(vm.activeStatusTime);
                vm.isTimeDownHide = false;

                timerCountDown.on(TimerCountDown.EVENT_STAOP, () => {
                    let a = vm.activeStatusIndex + 1;
                    if (a < vm.itemInfoStatusSchedule.length) {
                        vm.activeStatusTime=0;
                        setTimeout(() => {
//                            vm.activeStatusTime = vm.itemInfoStatusSchedule[a].countdown;
                            vm.activeStatusTime = parseInt((vm.itemInfoStatusSchedule[a].startTime * 1000 - (new Date().getTime()) - vm.diff)/1000);
                            vm.activeStatusName = vm.itemInfoStatusSchedule[a].timedStatusName;
                            vm.activeStatusIndex = a;
                            vm.itemInfoStatus = vm.itemInfoStatusSchedule[a];
                            //更新状态

                            vm.itemStatus = vm.itemInfoStatusSchedule[a - 1].timedStatus;

                            //console.log('status:'+vm.itemStatus +'  detailButtonShow: '+vm.detailButtonShow);

                        }, 1000)

                    } else {
                        vm.isTimeDownHide = true;
                        vm.itemStatus = vm.itemInfoStatusSchedule[vm.itemInfoStatusSchedule.length-1].timedStatus;

                        // console.log('status:'+vm.itemStatus +'  detailButtonShow: '+vm.detailButtonShow);
                    }
                    timerCountDown.destroy();

                });

                timerCountDown.on(TimerCountDown.EVENT_LOOP, () => {
                    let time = timerCountDown.getMs() / 1000;

                    this.activeStatusTime = time;

                });
                timerCountDown.run();

//                window.timerCountDown=timerCountDown;

            },
            resetCountDown() {

                var vm = this;
                let activeIndex = vm.activeStatusIndex, Schedule = this.itemInfoStatusSchedule[activeIndex]
                var serverTime = (Schedule.startTime - Schedule.countdown) * 1000,
                    countdown = Schedule.startTime * 1000 - (new Date().getTime()) - vm.diff;
                countdown = parseInt(countdown / 1000);

                vm.activeStatusTime = countdown; //更正
//                console.log('countdown',countdown,serverTime , (new Date().getTime()) , vm.diff);
                vm.resetTimeCountDown();

            },
            sleepCheck() {  //检查手机休眠
                //https://stackoverflow.com/questions/6543325/what-happens-to-javascript-execution-settimeout-etc-when-iphone-android-goes
                let vm = this;
                var now = new Date().getTime();
                this.nowTime = new Date().getSeconds();
                var diff = now - vm.lastCheckTime;
//                console.log('diff',diff);
                if (diff > 2000) {
                    vm.resetCountDown();
                    //this.$router.go(0);
                    //window.location.replace(window.location.href);
//                    alert('took ' + diff + 'ms  diffTime:'+  vm.diff);
                }
                vm.lastCheckTime = now;

            },