¿Cómo actualizar el lado del cliente después del lanzamiento de la nueva versión del subprograma WeChat?Manager wx.getUpdateManager()

Después de actualizar la versión del subprograma WeChat, ingréselo desde la barra de título de arriba y descubra que todavía no está actualizado y que hay un problema de caché

Solución: wx.getUpdateManager() proporcionado por WeChat

Mecanismo de actualización del programa WeChat Mini

1. Actualización síncrona al inicio (dos casos)

1) Comprobar periódicamente si hay actualizaciones de versión

Cuando WeChat se está ejecutando, comprobará periódicamente si los subprogramas utilizados recientemente están actualizados. Si hay una actualización, la próxima vez que se inicie el subprograma, se actualizará sincrónicamente y el subprograma se abrirá después de que se actualice la última versión, para garantizar que los usuarios puedan usar la última versión del subprograma tan pronto como sea posible. posible. Después de que el desarrollador lanza una nueva versión en segundo plano, no puede afectar inmediatamente a todos los usuarios de la red existentes, pero en el peor de los casos, cubrirá a la mayoría de los usuarios dentro de las 24 horas posteriores al lanzamiento.

2) El usuario no ha utilizado el Mini Programa durante mucho tiempo

Cuando el usuario no ha utilizado el Mini Programa durante mucho tiempo, para garantizar el rendimiento en tiempo real de la versión del Mini Programa, la actualización de la versión se verificará sincrónicamente y el Mini Programa se abrirá después de actualizar a la última versión. .

2. Actualización asíncrona al inicio

Incluso si no se encuentra ninguna actualización antes del inicio, cada vez que el subprograma se inicia en frío, comprobará de forma asíncrona si hay una versión actualizada. Si se encuentra una nueva versión, el paquete de código de la nueva versión se descargará de forma asíncrona. Sin embargo, el inicio actual seguirá utilizando la versión anterior del código local del cliente, es decir, la nueva versión del subprograma no se utilizará hasta el siguiente inicio en frío.

3. El desarrollador activa manualmente la actualización

En el caso de una actualización asíncrona al inicio, si el desarrollador desea actualizar la versión de inmediato, puede usar la API wx.getUpdateManager (código a continuación) para procesarla. Cuando haya una nueva versión, se le pedirá al usuario que reinicie la applet para actualizar la nueva versión.
 

 checkUpdateVersion() {
    const _that = this;
    //判断微信版本是否 兼容小程序更新机制API的使用
    if (wx.canIUse('getUpdateManager')) {
      //创建 UpdateManager 实例
      const updateManager = wx.getUpdateManager();
      console.log('是否进入模拟更新');
      //检测版本更新
      updateManager.onCheckForUpdate(function (res) {
        console.log('是否获取版本');
        if (res.hasUpdate) { // 请求完新版本信息的回调
          updateManager.onUpdateReady(function () { //监听小程序有版本更新事件
            //新的版本已经下载好,调用 applyUpdate 应用新版本并重启 ( 此处进行了自动更新操作)
            wx.showModal({
              title: '更新提示',
              content: '新版本已准备好,是否重启应用?',
              success: (res) => {
                if (res.confirm) {
                  updateManager.applyUpdate();
                }
              }
            })
          })
          updateManager.onUpdateFailed(function () {
            // 新版本下载失败
            wx.showModal({
              title: '已经有新版本喽~',
              content: '请您删除当前小程序,到微信 “发现-小程序” 页,重新搜索打开哦~',
              showCancel: false,
            })
          })
        }
      })
    } else {
      //此时微信版本太低(一般而言版本都是支持的)
      wx.showModal({
        title: '溫馨提示',
        content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。',
        showCancel: false,
      })
    }
  },

const updateManager = wx.getUpdateManager()

updateManager.onCheckForUpdate(function (res) {

// 请求完新版本信息的回调

console.log(res.hasUpdate)

})

updateManager.onUpdateReady(function () {

wx.showModal({

title: ‘更新提示’,

content: ‘新版本已经准备好,是否重启应用?’,

success(res) {

if (res.confirm) {

// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启

updateManager.applyUpdate()

}

}

})

})

updateManager.onUpdateFailed(function () {

// 新版本下载失败

})

Supongo que te gusta

Origin blog.csdn.net/weixin_42415158/article/details/127591844
Recomendado
Clasificación