• 微信小程序 更新版本操作


    1.小程序的启动方式:

      冷启动----小程序首次打开或销毁后再次被打开
    
      热启动----小程序打开后,在一段时间内(目前:5分钟)再次被打开,此时会将后台的小程序切换到前台。
    

    2.根据以上两种启动方式,相应的更新机制为:

     小程序冷启动时,会检查小程序是否有最新版本。如果有则将异步下载最新版本,但是仍将运行当前版本等到下一次冷启动时再运行最新版本。
    

    如果你想现在就使用最新版本则需要调用wx.getUpdateManager API进行处理;

    3.关于wx.getUpdateManager实战使用

    3.1API介绍

    //获取全局唯一的版本更新管理器,用于管理小程序更新。

      const  updateManager = wx.getUpdateManager();
    

    3.2 updateManager对象的方法列表:

     a.onCheckUpdate(function(res){}) 当向微信后台请求完新版本信息,会进行回调
    
     b.onUpdateReady   当新版本下载完成,会进行回调
    
     c.onUpdateFail  当新版本下载失败,会进行回调
    
     d.applyUpdate 当新版本下载完成,调用该方法会强制当前小程序应用上新版本并重启
    

    上述代码的书写位置为app.js中onLaunch

    3.3如何测试?

    4.直接上代码

    1.小程序的启动方式:

      冷启动----小程序首次打开或销毁后再次被打开
    
      热启动----小程序打开后,在一段时间内(目前:5分钟)再次被打开,此时会将后台的小程序切换到前台。
    

    2.根据以上两种启动方式,相应的更新机制为:

     小程序冷启动时,会检查小程序是否有最新版本。如果有则将异步下载最新版本,但是仍将运行当前版本等到下一次冷启动时再运行最新版本。
    

    如果你想现在就使用最新版本则需要调用wx.getUpdateManager API进行处理;

    3.关于wx.getUpdateManager实战使用

    3.1API介绍

    //获取全局唯一的版本更新管理器,用于管理小程序更新。

      const  updateManager = wx.getUpdateManager();
    

    3.2 updateManager对象的方法列表:

     a.onCheckUpdate(function(res){}) 当向微信后台请求完新版本信息,会进行回调
    
     b.onUpdateReady   当新版本下载完成,会进行回调
    
     c.onUpdateFail  当新版本下载失败,会进行回调
    
     d.applyUpdate 当新版本下载完成,调用该方法会强制当前小程序应用上新版本并重启
    

    上述代码的书写位置为app.js中onLaunch

    3.3如何测试?

    4.直接上代码

    1.小程序的启动方式:

      冷启动----小程序首次打开或销毁后再次被打开
    
      热启动----小程序打开后,在一段时间内(目前:5分钟)再次被打开,此时会将后台的小程序切换到前台。
    

    2.根据以上两种启动方式,相应的更新机制为:

     小程序冷启动时,会检查小程序是否有最新版本。如果有则将异步下载最新版本,但是仍将运行当前版本等到下一次冷启动时再运行最新版本。
    

    如果你想现在就使用最新版本则需要调用wx.getUpdateManager API进行处理;

    3.关于wx.getUpdateManager实战使用

    3.1API介绍

    //获取全局唯一的版本更新管理器,用于管理小程序更新。

      const  updateManager = wx.getUpdateManager();
    

    3.2 updateManager对象的方法列表:

     a.onCheckUpdate(function(res){}) 当向微信后台请求完新版本信息,会进行回调
    
     b.onUpdateReady   当新版本下载完成,会进行回调
    
     c.onUpdateFail  当新版本下载失败,会进行回调
    
     d.applyUpdate 当新版本下载完成,调用该方法会强制当前小程序应用上新版本并重启
    

    上述代码的书写位置为app.js中onLaunch

    3.3如何测试?

    4.直接上代码

    App({
      onLaunch: function(options) {
        this.autoUpdate()
      },
      autoUpdate: function() {
        var self = this
        // 获取小程序更新机制兼容
        if (wx.canIUse('getUpdateManager')) {
          const updateManager = wx.getUpdateManager()
          //1. 检查小程序是否有新版本发布
          updateManager.onCheckForUpdate(function(res) {
            // 请求完新版本信息的回调
            if (res.hasUpdate) {
              //检测到新版本,需要更新,给出提示
              wx.showModal({
                title: '更新提示',
                content: '检测到新版本,是否下载新版本并重启小程序?',
                success: function(res) {
                  if (res.confirm) {
                    //2. 用户确定下载更新小程序,小程序下载及更新静默进行
                    self.downLoadAndUpdate(updateManager)
                  } else if (res.cancel) {
                    //用户点击取消按钮的处理,如果需要强制更新,则给出二次弹窗,如果不需要,则这里的代码都可以删掉了
                    wx.showModal({
                      title: '温馨提示~',
                      content: '本次版本更新涉及到新的功能添加,旧版本无法正常访问的哦~',
                      showCancel:false,//隐藏取消按钮
                      confirmText:"确定更新",//只保留确定更新按钮
                      success: function(res) {
                        if (res.confirm) {
                          //下载新版本,并重新应用
                          self.downLoadAndUpdate(updateManager)
                        }
                      }
                    })
                  }
                }
              })
            }
          })
        } else {
          // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
          wx.showModal({
            title: '提示',
            content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
          })
        }
      },
      /**
       * 下载小程序新版本并重启应用
       */
      downLoadAndUpdate: function (updateManager){
        var self=this
        wx.showLoading();
        //静默下载更新小程序新版本
        updateManager.onUpdateReady(function () {
          wx.hideLoading()
          //新的版本已经下载好,调用 applyUpdate 应用新版本并重启
          updateManager.applyUpdate()
        })
        updateManager.onUpdateFailed(function () {
          // 新的版本下载失败
          wx.showModal({
            title: '已经有新版本了哟~',
            content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
          })
        })
      }
    })
    
  • 相关阅读:
    Java中-classpath和路径的使用
    总是分不清
    Maven Web项目部署到Tomcat下问题
    一、数据设计规范
    一、入职学习
    一、服务器控件
    WebApiThrottle限流框架
    一、接口的规则
    一、免费API调用
    十、锁
  • 原文地址:https://www.cnblogs.com/suli0827/p/9533240.html
Copyright © 2020-2023  润新知