我們開發完小程序,發佈新版本之後,用戶如果想體驗新版本,需要把小程序從使用列表刪除,在重新搜索之後,再次打開,新的版本纔會生效。但是, 隨着我們更新次數的增加,這種方式就很不友好,用戶體驗下降,所以在開發中,我們就要考慮配置小程序自動更新。
首先,我們需要了解下小程序的運行機制,小程序啓動可以分爲兩種情況,一種是冷啓動,一種是熱啓動。
-
冷啓動:如果用戶首次打開,或小程序銷燬後被用戶再次打開,此時小程序需要重新加載啓動,即冷啓動。
-
熱啓動:如果用戶已經打開過某小程序,然後在一定時間內再次打開該小程序,此時小程序並未被銷燬,只是從後臺狀態進入前臺狀態,這個過程就是熱啓動。
在瞭解下更新機制
-
未啓動時更新:就是說用戶本地已經存在小程序歷史版本,此時打開不是最新版本,最壞的情況是24小時內下發推送給用戶。
-
啓動時更新:就是冷啓動,用戶從未體驗小程序,或者小程序銷燬後再打開。異步下載新版本,並同時用本地的包進行啓動,新版本需要等下一次冷啓動纔會應用上。
上面簡單介紹了小程序的運行機制和更新機制,接下來就是配置小程序自動更新。我們在app.js中,新增如下代碼
// 小程序自動更新 if (wx.canIUse('getUpdateManager')) { const updateManager = wx.getUpdateManager() updateManager.onCheckForUpdate(function (res) { // 請求完新版本信息的回調 if (res.hasUpdate) { updateManager.onUpdateReady(function () { wx.showModal({ title: '更新提示', content: '新版本已經準備好,是否重啓應用?', success: function (res) { if (res.confirm) { // 新的版本已經下載好,調用 applyUpdate 應用新版本並重啓 updateManager.applyUpdate() } } }) }) updateManager.onUpdateFailed(function () { // 新的版本下載失敗 wx.showModal({ title: '已經有新版本了喲~', content: '新版本已經上線啦~,請您刪除當前小程序,重新搜索打開喲~' }) }) } }) }
添加編譯模式
小程序會重新編譯,版本更新已提示
更新完會重啓,小程序自動更新已配置完成。
參考:https://www.cnblogs.com/nmgwap/p/16331632.html