tt.getUpdateManager

2020-02-15 01:13 更新
基础库 1.9.0 开始支持本方法。


UpdateManager tt.getUpdateManager()

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

::: tip 提示 请在小程序启动时执行,否则可能无法及时获取更新状态 :::


小程序运行机制

前台/后台状态

当用户点击右上角胶囊按钮关闭小程序,或者按了设备 Home 键离开时,小程序并没有直接销毁,而是进入了后台状态; 当用户再次进入宿主或再次打开小程序,小程序又会从后台进入前台。 小程序在后台停留超过 5 分钟会被主动销毁。

小程序启动

小程序启动会有两种情况,一种是「冷启动」,一种是「热启动」: 冷启动:用户首次打开或小程序被主动销毁(后台 5 分钟)后再次打开的情况,此时小程序需要重新加载启动,即冷启动。 热启动:非冷启动打开小程序的情况即热启动。 小程序没有重启的概念,所谓的重启即先主动销毁后冷启动打开。

更新

小程序每次冷启动时,都会优先使用本地已经缓存的程序包启动小程序。同时异步检查是否有更新版本。如果发现有新版本,将会异步下载新版本的代码包。因此新的代码包默认是在下一次冷启动时才会应用。如果需要在发布后马上应用最新版本,可以使用 getUpdateManager。


输入

无输入


输出

返回全局唯一的 UpdateManager 对象。


方法列表

updateManager.onCheckForUpdate(callback)

监听向小程序服务请求检查更新结果事件。该方法会在小程序冷启动时自动检查更新。

该方法的唯一参数callback是一个function类型的回调方法,该回调方法会有一个object类型的实参,具体包括的属性如下

属性类型描述
hasUpdateboolean是否需要更新

updateManager.onUpdateReady(callback)

当前小程序存在更新包,且更新包异步下载成功后的回调。

该方法的唯一参数callback是一个function类型的回调方法,该回调方法无实参。

updateManager.onUpdateFailed(callback)

当前小程序存在更新包,但更新包异步下载失败时的回调。

该方法的唯一参数callback是一个function类型的回调方法,该回调方法无实参。

updateManager.applyUpdate()

强制小程序重启并使用新版本。在小程序新版本下载完成后(即收到onUpdateReady回调)调用。


代码示例

const updateManager = tt.getUpdateManager();

updateManager.onCheckForUpdate(function(res) {
  // 请求完新版本信息的回调
  console.log("onCheckForUpdate", res.hasUpdate);
  if (res.hasUpdate) {
    tt.showToast({
      title: "即将有更新请留意"
    });
  }
});

updateManager.onUpdateReady(() => {
  tt.showModal({
    title: "更新提示",
    content: "新版本已经准备好,是否立即使用?",
    success: function(res) {
      if (res.confirm) {
        // 调用 applyUpdate 应用新版本并重启
        updateManager.applyUpdate();
      } else {
        tt.showToast({
          icon: "none",
          title: "小程序下一次「冷启动」时会使用新版本"
        });
      }
    }
  });
});

updateManager.onUpdateFailed(() => {
  tt.showToast({
    title: "更新失败,下次启动继续..."
  });
});


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号