小程序模板網

IOS系統(tǒng)中,倒計時(setInterval函數)失效的問題

發(fā)布時間:2017-12-06 16:42 所屬欄目:小程序開發(fā)教程

先說結論:掛起(顯示在聊天頂部)狀態(tài)無法完美解決,息屏狀態(tài)可以完美解決。 本帖目的只是分享在碰到問題時的解決方法和思路。如果不能解決您的問題就非常抱歉。ps:由于小程序一直在更新中,所以并不保證下面的方 ...

 
 
 

先說結論:掛起(顯示在聊天頂部)狀態(tài)無法完美解決,息屏狀態(tài)可以完美解決。 
本帖目的只是分享在碰到問題時的解決方法和思路。如果不能解決您的問題就非常抱歉。ps:由于小程序一直在更新中,所以并不保證下面的方法長期有效。

息屏狀態(tài)完美解決方法: 
1、適用場景:通過傳入參數控制倒計時時間的頁面。 
2、解決思路:在息屏和掛起的時候,我們可以通過vConsole可以看到是執(zhí)行了onHide函數。再打開的時候執(zhí)行的onShow函數,所以我們就可以在onHide函數做文章了。 
3、解決方案:實踐過后發(fā)現(xiàn)在onHide函數中使用setTimeout或者setInterval函數還是不起作用。所以換個方式。 
因為我們的頁面是通過傳入參數控制的倒計時時間,
所以我們在onHide函數內部,redirectTo到當前頁面,并將當前頁面的剩余倒計時時間傳入做為參數傳入。由于未知的原因,在息屏狀態(tài)下進行頁面跳轉以后,頁面的倒計時還是能繼續(xù)運行(setInterval函數可以運行),這樣我們就能在息屏狀態(tài)下進行倒計時了。而且倒計時時間不會像安卓那樣會變慢(僅在iphone6下進行測試) 
4、未解決的問題:雖然息屏和掛起都是一樣的執(zhí)行onHide和onShow函數,但是非常遺憾的是,在掛起狀態(tài)下頁面跳轉有時會失效(但是神奇的是,會執(zhí)行success函數)并且就算跳轉成功,計時器也還是會暫停,原因未知。

掛起狀態(tài)非完美解決方法: 
1、使用場景:大部分倒計時,但是不適用僅僅setInterval的頁面。 
2、解決方案:在開始倒計時的時候獲取一下系統(tǒng)當前時間,并加上你的倒計時時間(自行計算)作為結束時間,由上面可以知道再次打開小程序的時候會執(zhí)行onShow函數,因此只要在這個函數里面根據當前的時間和結束時間再次設置一下倒計時即可。 
ps:經過測試發(fā)現(xiàn)目前的番茄鬧鐘就是使用的這種方案。



易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://m.u-renovate.com/wxmini/doc/course/18047.html 復制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×