天天看點

微信小程式之自動更新功能

微信小程式項目釋出上線後,如何進行更新版本呢?

首先,你需要将新版本的項目代碼上傳送出稽核,稽核通過後進行項目的二次釋出。

但是,我們發現,新項目釋出之後,使用者使用依然是老版本,這是因為在微信中有舊版本的緩存。要想使用者用上新版本,隻能通過提示使用者在發現-小程式入口中将舊版小程式删除,然後重新搜尋小程式。

微信小程式之自動更新功能

這種方式一針見血,但是使用者體驗極差。于是在網上搜尋了解決辦法,代碼如下:

//檢查是否存在新版本
    wx.getUpdateManager().onCheckForUpdate(function (res) {
      // 請求完新版本資訊的回調
      console.log("是否有新版本:"+res.hasUpdate);
      if(res.hasUpdate){//如果有新版本
        
        // 小程式有新版本,會主動觸發下載下傳操作(無需開發者觸發)
        wx.getUpdateManager().onUpdateReady(function () {//當新版本下載下傳完成,會進行回調
          wx.showModal({
            title: '更新提示',
            content: '新版本已經準備好,單擊确定重新開機應用',
            showCancel:false,
            success: function (res) {
              if (res.confirm) {
                // 新的版本已經下載下傳好,調用 applyUpdate 應用新版本并重新開機
                wx.getUpdateManager().applyUpdate();
              }
            }
          })

        })
        
        // 小程式有新版本,會主動觸發下載下傳操作(無需開發者觸發)
        wx.getUpdateManager().onUpdateFailed(function () {//當新版本下載下傳失敗,會進行回調
          wx.showModal({
            title: '提示',
            content: '檢查到有新版本,但下載下傳失敗,請檢查網絡設定',
            showCancel: false,
          })
        })
      }
    });
           

上述代碼推薦寫在小程式首頁面的onLoad()事件中,一打開小程式就能夠判斷有沒有送出最新的線上版本,如果有将會自動下載下傳。

但是這裡需要注意的是,你在你的項目中加了如上代碼通過稽核并釋出後,依然需要進行最上方操作,即删除小程式重新搜尋,因為你新版本的小程式還未在使用者手機中,即使用者手機中的小程式仍是舊版小程式,onLoad()事件中并沒有你新添加的如上代碼。

删除過一次後,以後送出稽核釋出,就可以實作自動更新了~