tt.getUpdateManager

2020-02-15 01:13 更新
基礎(chǔ)庫 1.9.0 開始支持本方法。


UpdateManager tt.getUpdateManager()

獲取全局唯一的版本更新管理器,用于管理小程序更新。

::: tip 提示 請(qǐng)?jiān)谛〕绦騿?dòng)時(shí)執(zhí)行,否則可能無法及時(shí)獲取更新狀態(tài) :::


小程序運(yùn)行機(jī)制

前臺(tái)/后臺(tái)狀態(tài)

當(dāng)用戶點(diǎn)擊右上角膠囊按鈕關(guān)閉小程序,或者按了設(shè)備 Home 鍵離開時(shí),小程序并沒有直接銷毀,而是進(jìn)入了后臺(tái)狀態(tài); 當(dāng)用戶再次進(jìn)入宿主或再次打開小程序,小程序又會(huì)從后臺(tái)進(jìn)入前臺(tái)。 小程序在后臺(tái)停留超過 5 分鐘會(huì)被主動(dòng)銷毀。

小程序啟動(dòng)

小程序啟動(dòng)會(huì)有兩種情況,一種是「冷啟動(dòng)」,一種是「熱啟動(dòng)」: 冷啟動(dòng):用戶首次打開或小程序被主動(dòng)銷毀(后臺(tái) 5 分鐘)后再次打開的情況,此時(shí)小程序需要重新加載啟動(dòng),即冷啟動(dòng)。 熱啟動(dòng):非冷啟動(dòng)打開小程序的情況即熱啟動(dòng)。 小程序沒有重啟的概念,所謂的重啟即先主動(dòng)銷毀后冷啟動(dòng)打開。

更新

小程序每次冷啟動(dòng)時(shí),都會(huì)優(yōu)先使用本地已經(jīng)緩存的程序包啟動(dòng)小程序。同時(shí)異步檢查是否有更新版本。如果發(fā)現(xiàn)有新版本,將會(huì)異步下載新版本的代碼包。因此新的代碼包默認(rèn)是在下一次冷啟動(dòng)時(shí)才會(huì)應(yīng)用。如果需要在發(fā)布后馬上應(yīng)用最新版本,可以使用 getUpdateManager。


輸入

無輸入


輸出

返回全局唯一的 UpdateManager 對(duì)象。


方法列表

updateManager.onCheckForUpdate(callback)

監(jiān)聽向小程序服務(wù)請(qǐng)求檢查更新結(jié)果事件。該方法會(huì)在小程序冷啟動(dòng)時(shí)自動(dòng)檢查更新。

該方法的唯一參數(shù)callback是一個(gè)function類型的回調(diào)方法,該回調(diào)方法會(huì)有一個(gè)object類型的實(shí)參,具體包括的屬性如下

屬性類型描述
hasUpdateboolean是否需要更新

updateManager.onUpdateReady(callback)

當(dāng)前小程序存在更新包,且更新包異步下載成功后的回調(diào)。

該方法的唯一參數(shù)callback是一個(gè)function類型的回調(diào)方法,該回調(diào)方法無實(shí)參。

updateManager.onUpdateFailed(callback)

當(dāng)前小程序存在更新包,但更新包異步下載失敗時(shí)的回調(diào)。

該方法的唯一參數(shù)callback是一個(gè)function類型的回調(diào)方法,該回調(diào)方法無實(shí)參。

updateManager.applyUpdate()

強(qiáng)制小程序重啟并使用新版本。在小程序新版本下載完成后(即收到onUpdateReady回調(diào))調(diào)用。


代碼示例

const updateManager = tt.getUpdateManager();

updateManager.onCheckForUpdate(function(res) {
  // 請(qǐng)求完新版本信息的回調(diào)
  console.log("onCheckForUpdate", res.hasUpdate);
  if (res.hasUpdate) {
    tt.showToast({
      title: "即將有更新請(qǐng)留意"
    });
  }
});

updateManager.onUpdateReady(() => {
  tt.showModal({
    title: "更新提示",
    content: "新版本已經(jīng)準(zhǔn)備好,是否立即使用?",
    success: function(res) {
      if (res.confirm) {
        // 調(diào)用 applyUpdate 應(yīng)用新版本并重啟
        updateManager.applyUpdate();
      } else {
        tt.showToast({
          icon: "none",
          title: "小程序下一次「冷啟動(dòng)」時(shí)會(huì)使用新版本"
        });
      }
    }
  });
});

updateManager.onUpdateFailed(() => {
  tt.showToast({
    title: "更新失敗,下次啟動(dòng)繼續(xù)..."
  });
});


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)