項目出現的問題,開發者在管理背景釋出新版本的小程式之後,如果某個使用者本地有小程式的曆史版本,此時打開的可能還是舊版本,需要關掉小程式,再重新打開,才會是新版本的小程式。
我們需要去官網了解兩個小程式的概念:
- 小程式運作機制
- 小程式更新機制
- 冷啟動:如果使用者首次打開,或小程式銷毀後被使用者再次打開,此時小程式需要重新加載啟動,即冷啟動。
- 熱啟動:如果使用者已經打開過某小程式,然後在一定時間内再次打開該小程式,此時小程式并未被銷毀,隻是從背景狀态進入前台狀态,這個過程就是熱啟動。
小程式每次冷啟動時,都會檢查是否有更新版本,如果發現有新版本,将會異步下載下傳新版本的代碼包,并同時用用戶端本地的包進行啟動,即新版本的小程式需要等下一次冷啟動才會應用上。
如果需要馬上應用最新版本,可以使用 wx.getUpdateManager API 進行處理。
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
// 請求完新版本資訊的回調
console.log(res.hasUpdate)
})
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已經準備好,是否重新開機應用?',
success(res) {
if (res.confirm) {
// 新的版本已經下載下傳好,調用 applyUpdate 應用新版本并重新開機
updateManager.applyUpdate()
}
}
})
})
updateManager.onUpdateFailed(function () {
// 新版本下載下傳失敗
})
補充:
我們在微信小程式開發者工具模拟是否有版本更新的時候需要選擇你成功或者失敗的狀态,那麼就會彈出對應的提示框,可以讓使用者去直接更新