uniapp 微信小程序更新

372 阅读1分钟

step1|✨ 封装小程序更新函数

@/common/utils/minipro-update.js

/**小程序更新*/
export default function miniproUpdate() {
  const updateManager = uni.getUpdateManager();
  updateManager.onCheckForUpdate((res) => {
    // 请求完新版本信息的回调
    if (res.hasUpdate) {
      updateManager.onUpdateReady(() => {
        uni.showModal({
          title: "更新提示",
          content: "发现新版本,是否更新?",
          success(res2) {
            if (res2.confirm) {
              // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
              updateManager.applyUpdate();
            }
          },
        });
      });
    }
  });

  updateManager.onUpdateFailed(() => {
    // 新的版本下载失败
    uni.showModal({
      title: "更新失败",
      content: "为了使用最新版本,请您删除当前小程序,重新搜索打开!",
      showCancel: false
    });
  });
}

step2|✨ 在App.vue的onLaunch应用生命周期中调用

App.vue

import miniproUpdate from '@/common/utils/minipro-update.js';

export default {
    onLaunch: function() {
        console.log('App Launch');
        // #ifdef MP-WEIXIN
        miniproUpdate()
        // #endif
    },
}