小程序倒计时熄灭屏幕后再打开,倒计时不准确
发布于 6 年前 作者 eliang 20000 次浏览 来自 问答
  • 需求的场景描述(希望解决的问题):问题主要是自己开发的倒计时组件中,当页面正在倒计时,用户有很大几率会切出去看其他内容,然后等待倒计时即将结束的1,2分钟,才返回查看,或者,用户熄灭屏幕等待。此时!当小程序会暂停倒计时,导致用户切换回来,或者解锁屏幕,倒计时不准确。
  • 希望提供的能力:真的不好意思,我组织过了一次语言,刚才说的让大家误解了,我其实意思是,想要一个API判断,小程序在前台且刚好熄灭屏幕后再打开。或者提供一个熄灭屏幕的API。
4 回复

这个现象很正常,每台设备的情况都不一样的,大部分手机为了节省内存和能耗,把程序切到后台之后,是自动暂停了程序的运行的,只保留基本功能,这是手机厂商系统设定的,例如王者荣耀为啥切到后台,一段时间之后再切到前台就说网络中断重新连接就是这个原因。

这种情况建议监听页面隐藏onHide,记录下当前时间戳,监听onShow时重新计算前后记录的时间差,重置定时器。

假设返回的倒计时是2分钟,那么计算出2分钟后的时刻,倒计时计算距离这个时刻还有多久,就可以解决这个问题了:假设:倒计时120s,当前时刻是2018/12/05 17:11:00,那么2018/12/05 17:13:00,倒计时结束 setInterval(function() {    downTime = new Date(‘2018/12/05 17:13:00’).getTime() - new Date().getTime() })

onShow的时候重新计算下

回到顶部