uni-app中小程序的強制更新


在App.vue中添加如下代碼:

<script>
    export default {
        onLaunch: function(options) {
            var self = this
            // 獲取小程序更新機制兼容
            if (wx.canIUse('getUpdateManager')) {
                const updateManager = wx.getUpdateManager()
                //1. 檢查小程序是否有新版本發布
                updateManager.onCheckForUpdate(function(res) {
                  // 請求完新版本信息的回調
                  if (res.hasUpdate) {
                    //檢測到新版本,需要更新,給出提示
                    wx.showModal({
                      title: '更新提示',
                      showCancel:false,//隱藏取消按鈕
                      confirmText:"確定更新",//只保留確定更新按鈕
                      content: '檢測到新版本,是否下載新版本並重啟小程序?',
                      success: function(res) {
                        if (res.confirm) {
                          //2. 用戶確定下載更新小程序,小程序下載及更新靜默進行
                          self.downLoadAndUpdate(updateManager)
                        } else if (res.cancel) {
                          //用戶點擊取消按鈕的處理,如果需要強制更新,則給出二次彈窗,如果不需要,則這里的代碼都可以刪掉了
                          wx.showModal({
                            title: '溫馨提示~',
                            content: '本次版本更新涉及到新的功能添加,舊版本無法正常訪問的哦~',
                            showCancel:false,//隱藏取消按鈕
                            confirmText:"確定更新",//只保留確定更新按鈕
                            success: function(res) {
                              if (res.confirm) {
                                //下載新版本,並重新應用
                                self.downLoadAndUpdate(updateManager)
                              }
                            }
                          })
                        }
                      }
                    })
                  }
                })
              } else {
                // 如果希望用戶在最新版本的客戶端上體驗您的小程序,可以這樣子提示
                wx.showModal({
                  title: '提示',
                  content: '當前微信版本過低,無法使用該功能,請升級到最新微信版本后重試。'
                })
            }
        },
        onShow: function() {
            console.log('App Show');
        },
        onHide: function() {
            console.log('App Hide');
        },
        methods:{
            /**
               * 下載小程序新版本並重啟應用
               */
              downLoadAndUpdate: function (updateManager){
                var self=this
                wx.showLoading();
                //靜默下載更新小程序新版本
                updateManager.onUpdateReady(function () {
                  wx.hideLoading()
                  //新的版本已經下載好,調用 applyUpdate 應用新版本並重啟
                  updateManager.applyUpdate()
                })
                updateManager.onUpdateFailed(function () {
                  // 新的版本下載失敗
                  wx.showModal({
                    title: '已經有新版本了喲~',
                    content: '新版本已經上線啦~,請您刪除當前小程序,重新搜索打開喲~',
                  })
                })
            },
        },
    }
</script>

親測可用,大家可以互相討論


免責聲明!

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



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