鍍金池/ 問答/HTML/ 移動端自動鎖屏和手動鎖屏

移動端自動鎖屏和手動鎖屏

需求是在移動端瀏覽器做一個倒計時,例如2分鐘,當兩分鐘沒有點擊按鈕的時候,頁面就會alert提示,現(xiàn)在問題是,手機在鎖屏的時候,倒計時沒有繼續(xù)執(zhí)行,停留在鎖屏?xí)r候的事件,再重新打開手機的時候才會繼續(xù)倒計時
但是,如果是認為的鎖屏,倒計時會繼續(xù)執(zhí)行!
所以這個自動鎖屏和手動鎖屏有區(qū)別嗎??

嘗試過的解決辦法,就是js獲取手機是否鎖屏,鎖屏的時候獲取當前的事件,開屏的時候在獲取一次當前的時間,這個時間差和倒計時做對比,但是現(xiàn)在沒有找到j(luò)s獲取屏幕狀態(tài)的方法。請各位幫幫忙,困擾了好久!
function formatDuring(endTime,id, showCounter) {

            var str = getLocalStr("@EN${LANGMAPAIR['Air_SApaxdetail_CONFIRM_KEY'].en}@@TW${LANGMAPAIR['Air_SApaxdetail_CONFIRM_KEY'].tw}@@CN${LANGMAPAIR['Air_SApaxdetail_CONFIRM_KEY'].cn}@");
            var mss = endTime;
            var time = setInterval(function(){
                if(mss<0){
                    clearInterval(time);
                    alert(111);
                    location.href="<%=basePath%>AirBooking.do";
                    return;
                }
                var minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60));  
                var seconds = parseInt((mss % (1000 * 60)) / 1000);  
                var minutesStr = "";
                var secondsStr = "";
                mss-=1000;
                if(minutes<10){
                    minutesStr = "0";
                }
                if(seconds<10){
                    secondsStr = "0";
                }
                if (showCounter){
                    if(minutes==0){
                        $("#"+id).val(str+" "+secondsStr+seconds+" "+getLocalStr("@ENsec@@TW秒@@CN秒@"));
                    }else{
                        $("#"+id).val(str+" "+minutesStr+minutes+" "+getLocalStr("@ENmin@@TW分@@CN分@")+secondsStr+seconds+" "+$.translator.getLocalStr("@ENsec@@TW秒@@CN秒@"));
                    }
                }
            },1000);
        }
回答
編輯回答
初心

給個思路吧。
首先,倒計時開始,記錄你結(jié)束時間的 unix時間戳。
定時器里計算,當前時間的 unix時間戳 和 結(jié)束時間的 unix時間戳 之差。
當前時間<結(jié)束時間,那么差值轉(zhuǎn)換一下就是倒計時時間。
當前時間>結(jié)束時間,倒計時直接清零,清除定時器。

2017年7月12日 13:34