問題描述:iOS的殼,H5的內(nèi)容。點(diǎn)擊獲取驗(yàn)證碼,進(jìn)入60秒倒計(jì)時(shí),此時(shí)將APP進(jìn)入后臺掛起,過一分鐘之后,重新進(jìn)入此APP,發(fā)現(xiàn)倒計(jì)時(shí)并未進(jìn)行完,依舊顯示倒計(jì)時(shí)狀態(tài)。
如果利用iOS實(shí)現(xiàn)后臺運(yùn)行的方法去解決這個問題,顯得大材小用。那么就需要從H5入手。
實(shí)現(xiàn)思路,獲取兩個時(shí)間戳,一個在點(diǎn)擊獲取驗(yàn)證碼按鈕時(shí)獲取,另一個在循環(huán)時(shí)獲取,并在循環(huán)方法中處理兩個時(shí)間戳的差值。
實(shí)現(xiàn)代碼如下:
$(".get").click(function(){
var _time=parseInt(new Date().getTime()/1000); // 時(shí)間戳1
_time=_time+60;
$('#checkVal').attr("disabled", false);
$(".get").attr("disabled", true);
$(".get").val("60s后重發(fā)");
$(".get").css({"color":"#999","border-color":"#dedede"});
var _newt;
var InterValObj = window.setInterval(function(){
_newt=parseInt(new Date().getTime()/1000); // 時(shí)間戳2
_endT= _time - _newt;
if(_endT>0){
$(".get").val(_endT + "s后重發(fā)");
}else{
$(".get").val("重新發(fā)送");
$(".get").css({"color":"#17b4eb","border-color":"#17b4eb"});
$(".get").attr("disabled", false);
$('#checkVal').attr("disabled", true);
window.clearInterval(InterValObj);
}
},1000);
getCode(); // 獲取驗(yàn)證碼
});