• 关于微信小程序发布新版本后的提示用户更新的方法详解


    当小程序发布新的版本后 ,用户如果之前访问过该小程序,通过已打开的小程序进入(未手动删除),则会检测新版本,提醒用户更新新的版本

    话不多说,上代码

    App({
       onLaunch: function () {
         // 检查更新
         this.autoUpdate()
       },
       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: '新版本已经上线了,请删除当前小程序,重新搜索打开',
           })
         })
       }
     })

     由于小程序开发版/体验版没有“版本”的概念,所以无法在开发版/体验版上测试版本更新情况,可以在开发工具上,添加编译模式,勾选最下方的“下次编译时模拟更新”,但是要注意,这种模式仅供一次编译,下次编译需重新设置

  • 相关阅读:
    触发器
    新登录用户的次日成功的留存率
    获取薪水第二多的
    找到薪水比经理高的员工
    成绩排名
    exists 和 in
    sum+case 计数
    前N个员工的salary累计和
    员工的薪水按照salary进行按照1N的排名,相同salary并列
    洛谷2678 跳石头
  • 原文地址:https://www.cnblogs.com/jane2160/p/11263941.html
Copyright © 2020-2023  润新知