1.原因分析
在小程序更新開發版本之后,用戶本地並沒有對之前版本的小程序進行刪除,那么再進入小程序的時候的版本是不會發生變化的,這是由於發版是異步執行,因此新版本將會覆蓋的比較慢,本質是小程序的啟動方式分為兩種,冷啟動與熱啟動。
冷啟動:指的是用戶首次打開或小程序被微信主動銷毀后再次打開的情況,此時小程序需要重新加載啟動。
熱啟動:指用戶已經打開過某小程序,然后在一定時間內再次打開該小程序,此時無需重新啟動,只需將后台態的小程序切換到前台,這個過程並不會重新加載啟動。
2.解決方案
為了在小程序每次更新及時提醒用戶更新,uni-app提供了uni.getUpdateManager()
接口,用於管理小程序更新。
參考地址:https://uniapp.dcloud.io/api/other/update?id=getupdatemanager
代碼為:
onLaunch: function() { const updateManager = uni.getUpdateManager(); updateManager.onCheckForUpdate(function(res) { // 請求完新版本信息的回調 if (res.hasUpdate) { updateManager.onUpdateReady(function(res2) { uni.showModal({ title: '更新提示', content: '發現新版本,是否重啟應用?', cancelColor:'#eeeeee', confirmColor:'#FF0000', success(res2) { if (res2.confirm) { // 新的版本已經下載好,調用 applyUpdate 應用新版本並重啟 updateManager.applyUpdate(); } } }); }); } }); updateManager.onUpdateFailed(function(res) { // 新的版本下載失敗 uni.showModal({ title: '提示', content: '檢查到有新版本,但下載失敗,請檢查網絡設置', success(res) { if (res.confirm) { // 新的版本已經下載好,調用 applyUpdate 應用新版本並重啟 updateManager.applyUpdate(); } } }); }); },
3.本地調試
在微信小程序開發工具中,添加編譯模式,步驟如下:
1.點擊普通編譯下的【添加編譯模式】按鈕
2 填寫新編譯模式值,填寫一個名稱,選擇一個啟動頁面(首頁),勾選底部選項。
3 選擇新的編譯選項,加載當前小程序。
這樣界面上就可以出現剛才我們添加的代碼的執行效果了,如下:
推薦是最好的支持,關注是最大的鼓勵。親愛的朋友,很榮幸在園子里遇到您,希望能與您一起學習~~~。