微信小程序判断当前是否最新版本并且更新

在app.js中添加以下代码,并且在onLaunch中调用,每次更新后会弹出更新的提示框,点击确定即可更新为最新版本

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
autoUpdate: function() {
  let _this = this
  // 获取小程序更新机制的兼容,由于更新的功能基础库要1.9.90以上版本才支持,所以此处要做低版本的兼容处理
  if (wx.canIUse('getUpdateManager')) {
    // wx.getUpdateManager接口,可以获知是否有新版本的小程序、新版本是否下载好以及应用新版本的能力,会返回一个UpdateManager实例
    const updateManager = wx.getUpdateManager()
    // 检查小程序是否有新版本发布,onCheckForUpdate:当小程序向后台请求完新版本信息,会通知这个版本告知检查结果
    updateManager.onCheckForUpdate(function(res) {
      // 请求完新版本信息的回调
      if (res.hasUpdate) {
        // 检测到新版本,需要更新,给出提示
        wx.showModal({
          title: '更新提示',
          content: '检测到新版本,是否下载新版本并重启小程序',
          success: function(res) {
            if (res.confirm) {
              // 用户确定更新小程序,小程序下载和更新静默进行
              _this.downLoadAndUpdate(updateManager)
            } else if (res.cancel) {
              // 若用户点击了取消按钮,二次弹窗,强制更新,如果用户选择取消后不需要进行任何操作,则以下内容可忽略
              wx.showModal({
                title: '提示',
                content:
                  '本次版本更新涉及到新功能的添加,旧版本将无法正常使用',
                showCancel: false, // 隐藏取消按钮
                confirmText: '确认更新', // 只保留更新按钮
                success: function(res) {
                  if (res.confirm) {
                    // 下载新版本,重启应用
                    _this.downLoadAndUpdate(updateManager)
                  }
                }
              })
            }
          }
        })
      }
    })
  } else {
    // 在最新版本客户端上体验小程序
    wx.showModal({
      title: '提示',
      content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试'
    })
  }
},
// 下载小程序最新版本并重启
downLoadAndUpdate: function(updateManager) {
  wx.showLoading()
  // 静默下载更新小程序新版本,onUpdateReady:当新版本下载完成回调
  updateManager.onUpdateReady(function() {
    wx.hideLoading()
    // applyUpdate:强制当前小程序应用上新版本并重启
    updateManager.applyUpdate()
  })
  // onUpdateFailed:当新版本下载失败回调
  updateManager.onUpdateFailed(function() {
    // 下载新版本失败
    wx.showModal({
      title: '已有新版本',
      content: '新版本已经上线了,请删除当前小程序,重新搜索打开'
    })
  })
}

  转载自https://juejin.cn/post/6844904007173931021

posted @   布偶123  阅读(1161)  评论(0编辑  收藏  举报
编辑推荐:
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· 深度对比:PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
点击右上角即可分享
微信分享提示