Skip to content

更新機制

靜默更新

開發者在管理後台發布新版本的小遊戲之後,如果某個用戶本地有小遊戲的歷史版本,此時開啟的可能還是舊版本。宿主 App 會有若干個時機去檢查本地快取的小遊戲有沒有更新版本,如果有則會靜默更新到新版本。總的來說,開發者在後台發布新版本之後,無法立刻影響到所有現網用戶,但最差情況下,也在發布之後 24 小時之內下發新版本信息到用戶。用戶下次開啟時會先更新最新版本再開啟。

未啟動時更新

宿主 App 會定時檢查最近使用過的小遊戲是否有發布新版本;如果有,下次開啟的時候會同步更新新版本再開啟。這可以保障在新版本發布 24 小時後,所有小遊戲都能使用最新版本。

啟動時更新

小遊戲每次冷啟動時,都會檢查是否有更新版本,如果發現有新版本,將會異步下載新版本的代碼包,並同時用客戶端本地的包進行啟動,即新版本的小遊戲需要等下一次冷啟動才會應用上。

強制更新

如果需要使用者馬上套用最新版本,可以使用以下方式:

檢測更新 API

可以使用wx.getUpdateManagerAPI 進行處理。

js
const updateManager = wx.getUpdateManager();

updateManager.onCheckForUpdate(function(res) {
  // Callback upon requesting new version information
  console.log(res.hasUpdate);
});

updateManager.onUpdateReady(function() {
  wx.showModal({
    title: "Update available",
    content: "A new version is ready. Would you like to restart the app?",
    success(res) {
      if (res.confirm) {
        // The new version has been downloaded, call applyUpdate to apply the new version and restart
        updateManager.applyUpdate();
      }
    }
  });
});

updateManager.onUpdateFailed(function() {
  // Callback for failed new version download
...

調試 API: 開發者工具提供了強制更新的調試能力,透過編譯模式 - 編輯編譯模式 - 勾選編譯時模擬更新 即可在開發者工具上調試強制更新功能(真機無法調試)。