鏈接:https://pan.baidu.com/s/1i7cSkqL 密碼:g80i 最近給央視做了個H5答題游戲,但在倒計時上遇到一個終端問題:手機端按Home鍵將微信收入後臺之後,IOS11 會繼續跑JS五秒鐘,註意是5秒,也就是倒計時9的時候收到後臺,等1分鐘再打開,JS會從4開始倒計時。 ...
鏈接:https://pan.baidu.com/s/1i7cSkqL 密碼:g80i
最近給央視做了個H5答題游戲,但在倒計時上遇到一個終端問題:手機端按Home鍵將微信收入後臺之後,IOS11 會繼續跑JS五秒鐘,註意是5秒,也就是倒計時9的時候收到後臺,等1分鐘再打開,JS會從4開始倒計時。 聽說IOS6的時候能跑10分鐘,IOS7有3分鐘,IOS11只有5秒....但TM就是個BUG,得改啊(PS,安卓10s能正常跑,我也沒試過能跑幾秒,也許這就是安卓軟體開多了卡爆的原因)。我的選擇是獲取當前時間戳來解決這個問題,具體代碼分析如下:
function Time_a() { var time = 10; $(".time").text(time); var t = setInterval(function() { if(time == 0) { clearTimeout(t); } else { time--; $(".time").text(time) } }, 1000) }
當用time--;來倒計時的時候,在IOS11上面就會出現倒計時斷層。因此我選擇使用時間戳,再配合後臺的時間限制,就可以解決IOS的後臺運行時間限制。
function Time_b(){ var time=10; var beginTime=new Date().getTime(); $(".time-a").text(time); var t= setInterval(function(){ var newTime=new Date().getTime(); var dTime=(newTime-beginTime)/1000; dTime=parseInt(dTime); time = 10-dTime > 0 ? 10-dTime : 0; $(".time-a").text(time); },1000) }