【uniapp】微信小程序发布后提醒用户更新版本

业务场景:

当我们把微信小程序提交审核,通过后进行发布,如果用户本地使用小程序有时就会出现缓存,打开的小程序还是旧的版本。遇到这个问题可以通过删除小程序并重新进入的方式来清除缓存,但这样明显不是个好办法。

解决方式:

利用uniapp的uni.getUpdateManager()来处理,针对发布后用户打开微信小程序,如果版本是旧版本的话,将会提示用户更新重启应用,这样就会避免小程序发布后某些用户的版本还是在上一个版本的情况。

  • uni.getUpdateManager()
    本API返回全局唯一的版本更新管理器对象: updateManager,用于管理小程序更新。该方法只适用于小程序,不适用于APP和H5。

      const updateManager = uni.getUpdateManager() // 小程序版本更新管理器
      updateManager.onCheckForUpdate(res => { // 检测新版本后的回调
          if(res.hasUpdate) { // 如果有新版本提醒并进行强制升级
              uni.showModal({
                  content: '新版本已经准备好,是否重启应用?',
                  showCancel: false,
                  confirmText: '确定',
                  success: res => {
                      if (res.confirm) {
                          updateManager.onUpdateReady(res => { // 新版本下载完成的回调
                              updateManager.applyUpdate() // 强制当前小程序应用上新版本并重启
                          })
    
                          updateManager.onUpdateFailed(res => { // 新版本下载失败的回调
                              // 新版本下载失败,提示用户删除后通过冷启动重新打开
                              uni.showModal({
                                  content: '下载失败,请删除当前小程序后重新打开',
                                  showCancel: false,
                                  confirmText: '知道了'
                              })
                          })
                      }
                  }
              })
          }
      }) 
    

onLaunch生命周期内调用版本更新的方法,如果已经更新过是最新版本的小程序,则不会提示版本更新。

最后:

小程序的开发版/体验版没有版本概念,所以无法在开发版/体验版上测试更版本更新情况,要么在本地测试,要么发布正式版本后验证。
本地调试在微信小程序开发工具中,添加编译模式
点击普通编译下的【添加编译模式】按钮,勾选底部选项下次编译时模拟更新,然后使用该编译模式进行更新。

image.png

作者:宿雨style
链接:https://juejin.cn/post/7129901640245035045
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容