字節(jié)跳動小程序開發(fā)API UpdateManager

2019-08-12 16:19 更新

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

小程序運行機制


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

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

小程序啟動

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

更新

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

輸入


無輸入

輸出


返回全局唯一的UpdateManager對象。

方法列表


updateManager.onCheckForUpdate(callback)

監(jiān)聽向小程序服務請求檢查更新結(jié)果事件。該方法會在小程序冷啟動時自動檢查更新。

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

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

updateManager.onUpdateReady(callback)

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

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

updateManager.onUpdateFailed(callback)

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

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

updateManager.applyUpdate()

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

代碼示例


const updateManager = tt.getUpdateManager();

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

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

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


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號