使用uni-app開發小程序,關於小程序更新后與用戶本地不會及時更新解決辦法


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 選擇新的編譯選項,加載當前小程序。

 

這樣界面上就可以出現剛才我們添加的代碼的執行效果了,如下:

推薦是最好的支持,關注是最大的鼓勵。親愛的朋友,很榮幸在園子里遇到您,希望能與您一起學習~~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM