微信小程序启动自动检测版本更新,检测到新版本则提示更新

news2024/12/30 3:06:20

UpdateManager 对象,用来管理更新,可通过 wx.getUpdateManager 接口获取实例

在app.js中的示例代码

onShow() {
    // 获取小程序更新机制的兼容,由于更新的功能基础库要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) {
                downLoadAndUpdate(updateManager)
              } else if (res.cancel) {
                // 若用户点击了取消按钮,二次弹窗,强制更新,如果用户选择取消后不需要进行任何操作,则以下内容可忽略
                wx.showModal({
                  title: '提示',
                  content: '本次版本更新涉及到新功能的添加,旧版本将无法正常使用',
                  showCancel: false, // 隐藏取消按钮
                  confirmText: '确认更新', // 只保留更新按钮
                  success: function (res) {
                    if (res.confirm) {
                      downLoadAndUpdate(updateManager)
                    }
                  }
                })
              }
            }
          })
        }
      })
    } else {
      // 在最新版本客户端上体验小程序
      wx.showModal({
        title: '提示',
        content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试',
      })
    }
  },
   // 下载小程序最新版本并重启
  downLoadAndUpdate(updateManager){
    wx.showLoading()
    // 静默下载更新小程序新版本,onUpdateReady:当新版本下载完成回调
    updateManager.onUpdateReady(function () {
      wx.hideLoading()
      // applyUpdate:强制当前小程序应用上新版本并重启
      updateManager.applyUpdate()
    })
    // onUpdateFailed:当新版本下载失败回调
    updateManager.onUpdateFailed(function () {
      // 下载新版本失败
      wx.showModal({
        title: '已有新版本',
        content: '新版本已经上线了,请删除当前小程序,重新搜索打开',
      })
    })
  },

UpdateManager.applyUpdate() 强制小程序重启并使用新版本。在小程序新版本下载完成后(即收到 onUpdateReady 回调)调用。

UpdateManager.onCheckForUpdate(function listener) 监听向微信后台请求检查更新结果事件。微信在小程序每次启动(包括热启动)时自动检查更新,不需由开发者主动触发。

UpdateManager.onUpdateReady(function listener) 监听小程序有版本更新事件。客户端主动触发下载(无需开发者触发),下载成功后回调

UpdateManager.onUpdateFailed(function listener) 监听小程序更新失败事件。小程序有新版本,客户端主动触发下载(无需开发者触发),下载失败(可能是网络原因等)后回调

在体验码和开发版不能测试,可以使用添加编译的方式检测

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/853188.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java serialport 串口助手源码 RXTX java 11还崩溃。java串口支持jdk11,jdk13,jdk14版本win10 64位系统bug修复库nrjavaserial好用

Java提供了一些API来支持串口通信。主要包括: javax.comm:Java Communications API,是一个用于串行通信的Java API。然而,这个API已经很长时间没有更新了,而且只支持32位的Windows系统。官网已经删。 RXTX:…

成功解决Linux下中文乱码问题,CentOS7设置系统字符编码

在linux中,可以使用以下命令查看当前系统的字符编码: echo $LANG 如果不是UTF-8,就会出现中文乱码现象! 解决办法:设置字符编码环境变量为utf-8 1. 打开 ~/.bashrc 或 ~/.bash_profile 文件 vi ~/.bashrc 或 vi ~/.bash_prof…

北航基于openEuler构建工业机器人操作系统,打造“开箱即用”的机器人基础软件平台

北京航空航天大学是国家“双一流”建设高校,以建设扎根中国大地的世界一流大学为发展目标。北京航空航天大学在机器人领域一直处于行业前沿,以其亮眼的成果和优秀的师资力量,成为国内机器人领域的重要参与者和建设者。机器人操作系统是机器人…

根证书和中间证书有什么区别?

通常即使是获取了SSL证书的人,也只知道他们需要SSL证书,而且他们必须在服务器上安装SSL证书,才能通过HTTPS为网站提供服务。当进一步提到中间证书、根证书时,大多数人都感到陌生。本文小编就将为您介绍根证书与中间证书的定义以及…

怎么采集网址、图片地址等标签属性

如果只想采集网址、图片地址等HTML标签属性的值,要怎么采集呢? 可以使用简数采集器,有对应的快捷提取方式,一键即可转换为采集网址、采集图片地址方式,非常方便快捷。 也可以自行设置高级提取,提取Html标…

vite跨域配置踩坑,postman链接后端接口正常,但是前端就是不能正常访问

问题一:怎么都链接不了后端地址 根据以下配置,发现怎么都链接不了后端地址,proxy对了呀。 仔细看,才发现host有问题 // 本地运行配置,及反向代理配置server: {host: 0,0,0,0,port: 80,// cors: true, // 默认启用并允…

进程通信常见方式

目录 通信通信概述 通信的主要方式 进程同步机制--低级进程通信 高级通信工具 共享存储器系统(Shared-Memory System) 管道(pipe)通信系统 客户机-服务器系统(Client-Server system)---套接字(Socket) 客户机-服务器系统(Client-Serv…

数字孪生技术的实用性究竟有多高?

数字孪生是将实际物理世界与数字虚拟世界相结合的创新方法,它为我们提供了一个全新的视角,带来了许多令人兴奋的前景。那么,数字孪生的实用性究竟有多高呢? 首先,数字孪生在工业领域展现出了巨大的实用潜力。通过在虚…

Oracle-创建PDB

Oracle-创建PDB 创建PDB的方式 从PDB$SEED新建PDB克隆已存在的PDB 本地PDB克隆到同一个CDB中将远程PDB克隆到CDB中将非CDB插入或克隆到CDB中通过插拔的方式创建PDB sql 命令语法 条件 CDB必须open并且read write模式连接CDB$ROOT 用户并且具有CREATEPLUGGABLEDATABASE系统权…

树状结构数据,筛选指定数据

问题描述: 应用场景和需求:对一个树状结构的数据,进行CRUD 时,想筛选出 树状结构数据中存在变动的部分。 操作步骤 准备需要的数据: 1.先拿到 你原来的树状结构数据 2.再筛选出 需要保留的数据集合id,也…

机器学习基础之《特征工程(4)—特征降维》

一、什么是特征降维 降维是指在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程 1、降维 降低维度 ndarry 维数:嵌套的层数 0维:标量,具体的数0 1 2 3... …

用了回不去的卷王机械键盘,看这些就够了

前几天出了一期不同价位鼠标推荐:外设圈彻底开卷,2023 下半年无脑入鼠标推荐表来了! 结果不少小伙伴儿留言,鼠标是有了,还缺一把趁手好用且高性价比的机械键盘,并强烈要求咱再出一期。 话不多说&#xff0…

Markdown格式说明

一、基本语法 1.1 标题 大标题 中标题 -----# 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 1.2 文本样式 *强调文本* _强调文本_**加粗文本** __加粗文本__标记文本~~删除文本~~> 引用文本H~2~O is是液体。2^10^ 运算结果是 1024。…

使用Python发送HTML格式的邮件

使用Python发送HTML格式的邮件 😇博主简介:我是一名正在攻读研究生学位的人工智能专业学生,我可以为计算机、人工智能相关本科生和研究生提供排忧解惑的服务。如果您有任何问题或困惑,欢迎随时来交流哦!😄 …

业务中如何过滤敏感词

在我们访问网站的时候,如果发现我们发布的内容有色情暴力的东西等等,会屏蔽掉,这种行为就是过滤敏感词。 从技术层面实现起来,其实比较简单,因为我们输入的内容就是一个大型的字符串,我们要调用某些api来判…

【Vue3】Teleport 传送组件

Teleport 组件是 Vue.js 3 中引入的特性之一&#xff0c;它允许将组件的内容传送&#xff08;teleport&#xff09;到当前组件之外的目标位置&#xff0c;这在处理复杂的布局、模态框等方案时非常有用。 A.vue <template><div class"dialog"><heade…

SQL server 异地备份数据库

异地备份数据库 1.备份服务器中设置共享文件夹 2.源服务器数据库中添加异地备份代理作业 EXEC sp_configure show advanced options, 1;RECONFIGURE; EXEC sp_configure xp_cmdshell, 1;RECONFIGURE; declare machine nvarchar(50) 192.168.11.10 --服务器IP declare pa…

设备固定资产管理系统

资产管理是企业经营和发展的基础&#xff0c;特别是设备资产管理。适当的设备资产管理可以有效地提升企业的经营效率&#xff0c;为提高核心竞争能力提供高效的前提。 固资及设备管理系统&#xff08;EAM&#xff09;它是一种有效的固定资产管理模式&#xff0c;可以帮助企业更…

分布式应用:Zabbix 自动发现与自动注册

目录 一、理论 1.Zabbix 自动发现 2.Zabbix 自动发现部署 3.Zabbix 自动注册 4.Zabbix 自动注册部署 二、实验 1.Zabbix 自动发现部署 2.Zabbix 自动注册部署 三、总结 一、理论 1.Zabbix 自动发现 &#xff08;1&#xff09;原理 zabbix 自动发现(对于 agent2 是被…

爱校对-校对软件的重要性:减少错别字和语法错误的尴尬

校对软件在减少错别字和语法错误方面发挥着重要的作用&#xff0c;帮助避免尴尬情况的发生。以下是校对软件的重要性所在&#xff1a; 1.提高专业形象&#xff1a;新闻稿件是传递信息和建立声誉的关键工具。若存在大量的错别字和语法错误&#xff0c;会严重影响读者对媒体机构或…