针对在IOS下息屏和挂起状态下倒计时不会继续,以及在安卓状态下息屏致使变慢的问题进行的一次更新,具体效果请参考小程序 番茄闹钟。小程序
暂时没法解决的痛点:
一、在息屏和挂起下的倒计时结束之后须要跳转页面,可是有部分解决方案能够看我以前写的帖子,在这里
二、倒计时结束之后的函数,以及每隔多少秒执行的函数都不会执行,只有在从新进来以后才会执行。微信
wxTimer函数
介绍:用于在微信小程序中进行倒计时的组件。
功能
一、最基础的固然就是倒计时功能了。
二、能够设置倒计时结束后执行的事件。
三、能够设置倒计时执行过程当中每隔多少秒,执行一次对应的事件。ui
用法
引入:this
var timer = require('../../plugins/wxTimer.js');xml
最简单的调用方式:事件
var wxTimer = new timer({get
beginTime:"00:00:10"回调函数
})io
wxTimer.start(this);
wxTimer.stop();
倒计时结束后执行事件:
var wxTimer = new timer({
beginTime:"00:00:10",
complete:function(){
console.log("完成了")
}
})
wxTimer.start(this);
wxTimer.stop();
间隔执行事件:
var wxTimer = new timer({
beginTime:"00:00:10",
complete:function(){
console.log("完成了")
},
interval:2,
intervalFn:function(){
console.log("过去了2秒");
}
})
校准时间:
wxTimer.calibration();
注意:
一、因为内部须要调用到小程序的setData方法,因此咱们须要把this传过去。
二、此方法会在page中生成一个名为wxTimer和wxTimerSecond的data,分别是倒计时的 时/分/秒 版本和倒计时的纯秒数版本,若是须要在wxml中引用倒计时的数据直接{{wxTimer}}或者{{wxTimerSecond}}便可
其余参数:
一、beginTime 须要倒计时的时间,好比:"01:11:12",默认值为"00:00:00",也能够省略秒数,如:"01:10"
二、complete 倒计时归零0时的回调函数,若是为beginTime = "00:00:00"则当即调用
三、interval 倒计时的过程当中,规定每隔几秒执行一次intervalFn,若是为0则永远不会执行,默认为1
四、intervalFn 每隔interval秒执行一次的函数。
历史更新
2017.03.22 应对在息屏和挂起状态下倒计时没法进行的问题,加入了校准功能,能够在onShow()函数中直接调用wxTimer.calibration()来校准时间。