關於微信小程序更新內容後手機上不能及時顯示的辦法
阿新 • • 發佈:2018-05-31
alt show tro 編譯 span display title 微信 手機
這幾天一直在做微信小程序的二次開發,每天都要發布程序,但是發布之後微信上查看小程序和以前的一模一樣,絲毫沒有改變,但是我再本地上卻改變了,而且沒有開的不校驗合法域名那個。這是為啥呢?????
這是跟小程序的更新機制有關的,因為小程序的更新機制是異步的,所以說部分用戶不會馬上應用上新版本。
小程序啟動會有兩種情況,一種是「冷啟動」,一種是「熱啟動」。 假如用戶已經打開過某小程序,然後在一定時間內再次打開該小程序,此時無需重新啟動,只需將後臺態的小程序切換到前臺,這個過程就是熱啟動;冷啟動指的是用戶首次打開或小程序被微信主動銷毀後再次打開的情況,此時小程序需要重新加載啟動。
小程序的異步更新發生在冷啟動過程,當發現新版本後,會異步下載新版本的代碼包,但不會馬上應用上最新版本,需要等小程序下一次冷啟動,才會應用上新版本。
所以我在網上找到了這個方法:
異步更新 + 強制更新:同步檢查更新與模塊熱替換兩者之間的折衷方案,即還是維持異步更新機制,在異步下載完小程序代碼包後,提供重啟小程序的能力,這樣在遇到緊急問題時可以馬上解決。
當小程序冷啟動時,會自動向微信後臺請求新版本信息,如果有新版本,會馬上觸發新版本的下載。
代碼:
1 // wx.getUpdateManager 在 1.9.90 才可用,請註意兼容 2 const updateManager = wx.getUpdateManager() 3 4 updateManager.onCheckForUpdate(function (res) {5 // 請求完新版本信息的回調 6 console.log(res.hasUpdate) 7 }) 8 9 updateManager.onUpdateReady(function () { 10 wx.showModal({ 11 title: ‘更新提示‘, 12 content: ‘新版本已經準備好,是否馬上重啟小程序?‘, 13 success: function (res) { 14 if (res.confirm) { 15 // 新的版本已經下載好,調用 applyUpdate 應用新版本並重啟 16 updateManager.applyUpdate()17 } 18 } 19 }) 20 }) 21 22 updateManager.onUpdateFailed(function () { 23 // 新的版本下載失敗 24 })
那麽如何在本地測試這個東西呢?
然後下次編譯的時候就能模擬更新了。
點擊此處查看官方文檔
關於微信小程序更新內容後手機上不能及時顯示的辦法