uni-app 控制小程序版本更新;小程序自动更新版本;

更新方法,onLaunch或者onShow(推荐写在onShow内)调用就可以

const updateManagerFn = () => {
  const updateManager = uni.getUpdateManager();

  updateManager.onCheckForUpdate(function (res) {
    // 请求完新版本信息的回调
    console.log(res.hasUpdate, '请求完新版本信息的回调');
  });

  updateManager.onUpdateReady(function (res) {
    uni.showModal({
      title: '更新提示',
      content: '新版本已经准备好,是否重启应用?',
      showCancel: false,
      success(res) {
        if (res.confirm) {
          // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
          updateManager.applyUpdate();
        }

      }
    });
  });

  updateManager.onUpdateFailed(function (res) {
    // 新的版本下载失败
    console.log('小程序版本下载失败', res)
    uni.showModal({
      title: '提示',
      content: '新版小程序下载失败\n请自行退出程序,手动卸载本程序,再运行',
      confirmText: "知道了"
    });
  });
}

App.vue

<script setup lang="ts">
onLaunch(() => {
  console.log("App Launch");
});
onShow(async () => {
  console.log("App Show");
  updateManagerFn()
});
onHide(() => {
  console.log("App Hide");
});

const updateManagerFn = () => {
  const updateManager = uni.getUpdateManager();

  updateManager.onCheckForUpdate(function (res) {
    // 请求完新版本信息的回调
    console.log(res.hasUpdate, '请求完新版本信息的回调');
  });

  updateManager.onUpdateReady(function (res) {
    uni.showModal({
      title: '更新提示',
      content: '新版本已经准备好,是否重启应用?',
      showCancel: false,
      success(res) {
        if (res.confirm) {
          // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
          updateManager.applyUpdate();
        }

      }
    });
  });

  updateManager.onUpdateFailed(function (res) {
    // 新的版本下载失败
    console.log('小程序版本下载失败', res)
    uni.showModal({
      title: '提示',
      content: '新版小程序下载失败\n请自行退出程序,手动卸载本程序,再运行',
      confirmText: "知道了"
    });
  });
}
</script>

<style lang="scss">
@import "uview-plus/index.scss";
@import '@/static/scss/common/index.scss';
</style>

posted @ 2024-07-18 17:29  DL·Coder  阅读(77)  评论(0编辑  收藏  举报