uniapp - 微信小程序新版本发布之后用户端如何手动更新

news2024/11/16 19:47:07

解疑:微信运行时,会定期检查最近使用的小程序是否有更新。如果有更新,下次小程序启动时会同步进行更新,更新到最新版本后再打开小程序,尽可能保证用户能够尽快使用小程序的最新版本。开发者在后台发布新版本之后,无法立刻影响到所有现网用户,但最差情况下,也在发布之后24小时之内覆盖绝大多数用户。

#目录#

  • 小程序运行机制 - 小程序启动
  • 小程序更新机制
  • uni.getUpdateManager
  • 开发环境调试

小程序运行机制 - 小程序启动

  1. 冷启动:如果用户首次打开,或小程序销毁后被用户再次打开,此时小程序需要重新加载启动,即冷启动。
  2. 热启动:如果用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时小程序并未被销毁,只是从后台状态进入前台状态,这个过程就是热启动。

小程序更新机制
启动时同步更新
1.1. 定期检查发现版本更新:微信运行时,会定期检查最近使用的小程序是否有更新。如果有,下次启动打开新版。
1.2. 用户长时间未使用小程序:会强制同步检查版本更新。(下载新版失败,还是会用本地旧版)
启动时异步更新
2.1. 小程序每次冷启动时,都会异步检查是否有更新版本。如果发现有新版本,将会异步下载新版本的代码包。但当次启动仍会使用客户端本地的旧版本代码,即新版本的小程序需要等下一次冷启动才会使用。
所以我们要处理的是:热启动时检测更新,如果有就强制更新。在 onShow 生命周期中监听。

在首页index.vue文件中写入! 

onShow: function () {
    console.log("App Show");
    let updateManager = uni.getUpdateManager();
    if (!updateManager) {
      return;
    } else {
      //新版本更新
      if (uni.canIUse("getUpdateManager")) {
        //判断当前微信版本是否支持版本更新
 
        updateManager.onCheckForUpdate(function (res) {
          if (res.hasUpdate) {
            // 请求完新版本信息的回调
            updateManager.onUpdateReady(function () {
              uni.showModal({
                title: "更新提示",
                content: "新版本已经准备好,是否重启应用?",
                success: function (res) {
                  if (res.confirm) {
                    // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                    updateManager.applyUpdate();
                  }
                },
              });
            });
            updateManager.onUpdateFailed(function () {
              uni.showModal({
                // 新的版本下载失败
                title: "已经有新版本了哟~",
                content:
                  "新版本已经上线啦~,请您删除当前小程序,到微信 “发现-小程序” 页,重新搜索打开哦~",
              });
            });
          } else {
          }
        });
      } else {
        uni.showModal({
          // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
          title: "溫馨提示",
          content:
            "当前微信版本过低,部分功能无法使用,请升级到最新微信版本后重试。",
        });
      }
    }
  },

开发环境调试

1.在微信开发者工具中测试

 2.打开

3.添加模拟状态

效果

 
 

 

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

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

相关文章

关于Java线程池相关面试题

【更多面试资料请加微信号:suns45】 https://flowus.cn/share/f6cd2cbe-627a-435f-a6e5-1395333f92e8 【FlowUs 息流】📣suns-Java资料 访问密码:【请加微信号:suns45】 ————线程相关的面试题———— 0:创建线…

如何保持前端开发者的竞争力

这两年,我们经常听到一种声音,那就是“前端已死”。然而,事实并非如此。前端开发者在当今的软件开发中依然扮演着至关重要的角色,它是构建 Web 应用程序所必需的一部分,能够实现动态交互、良好的用户体验和友好的界面设…

vue实现瀑布流

1、在 src 目录下创建 component文件夹&#xff0c;在文件夹中创建 vue文件。 2、在 Vue文件中写入以下内容 <div class"pubu"><div class"left"><div class"pubu-item" v-for"item in left" :key"item.id"…

2023年10月12日历史上的今天大事件早读

公元前539年10月12日波斯国王大流士的军队攻克巴比伦 1492年10月12日西班牙独立日 1492年10月12日哥伦布“发现新大陆” 1773年10月12日法国天文学家梅西叶首次发现具有螺旋结构的星系 1885年10月12日清政府改台湾府为行省 命刘铭传为台湾巡抚 1929年10月12日苏军向张学良…

解决flex布局space-between 最后一行不对齐的问题

出现的问题&#xff1a; 方法一&#xff1a;给父级元素后面添加伪元素 在父盒子的样式里添加下列代码&#xff1a; &::after {content: ;flex: auto;} 方法二&#xff1a;计算 适用于每一行列数固定&#xff0c;且列宽度固定&#xff0c;需要进行计算&#xff0c;相比较…

ChatGPT或将引发现代知识体系转变

作为当下大语言模型的典型代表&#xff0c;ChatGPT对人类学习方式和教育发展所产生的变革效应已然引起了广泛关注。技术的快速发展在某种程度上正在“倒逼”教育领域开启更深层次的变革。在此背景下&#xff0c;教育从业者势必要学会准确识变、科学应变、主动求变、以变应变&am…

在创业公司,治愈了我的精神内耗

如果你看到下图的产品&#xff0c;你的第一反应是什么&#xff1f; 我的第一反应是&#xff0c;这样的产品会有市场吗&#xff1f;一个鼠标加上几个奇奇怪怪的键&#xff0c;披上 AI 的外衣&#xff0c;就有用户买单吗&#xff1f; 第二反应是&#xff0c;就算有市场&#xff0…

flinkcdc踩坑指南

文章目录 前言一、常见问题1.No suitable driver found for jdbc:oracle:thin:10.101.37.167:8888/orclpdb2.The db history topic or its content is fully or partially missing. Please check database history topic configuration and re-execute the snapshot3.com.verve…

【数据结构】二叉树的链式结构及实现

目录 1. 前置说明 2. 二叉树的遍历 2.1 前序、中序以及后序遍历 2.2 层序遍历 3. 节点个数及高度等 4. 二叉树的创建和销毁 1. 前置说明 在学习二叉树的基本操作前&#xff0c;需先要创建一棵二叉树&#xff0c;然后才能学习其相关的基本操作。由于现在大家对二叉树结构…

不用for循环,巧妙自动翻页获取所有数据

1、设置while循环的标记条件&#xff1b; 2、设置初始页码&#xff1b; 3、防止无限循环&#xff0c;设置最大循环次数为1000次&#xff1b; 4、当页码为第一次时&#xff0c;获取数据&#xff0c;并获取一共有多少页&#xff0c;并更新最大页码&#xff1b; 5、页码自动加…

FPGA面试题(4)(跨时钟域处理)

跨时钟域处理方法 慢->快快->慢单bit在快时钟域同步打拍&#xff0c;将信号同步到快时钟域展宽后同步打拍多bit异步FIFO异步FIFO握手信号 一.打两拍 适用于单bit跨时钟域处理所谓的打两拍就是定义两级寄存器实现延时 那为什么是打两拍&#xff0c;不是打一拍&#x…

方案:餐厅饭店AI智能视频监控可视化监管系统搭建方案

随着大众对食品卫生的要求逐渐提升&#xff0c;明厨亮灶已成为很多人选择就餐点的一大要求&#xff0c;明厨亮灶的产生对保障大众食安起到了十分显著的作用&#xff0c;后厨作为食品安全重要场所&#xff0c;需要“亮”出来&#xff0c;前厅也同时需要监控系统的保护&#xff0…

获取当日n个季度前的日期所处季度的最后一天——时间相关函数4

本文介绍的函数用于获取当日n个季度前的日期所处季度的最后一天&#xff08;有点绕&#xff0c;看后面例子就好理解了&#xff09;。 源码 def last_day_of_quarter_before_n_quarters(n):"""获取当日n个季度前的日期所处季度的最后一天:return: 当日n个季度前…

这才叫良心软件!

今年以来&#xff0c;大模型相关的技术究竟有多火&#xff0c;不用多说&#xff0c;相信大家心中也已有答案。 自GPT-4发布以来&#xff0c;各大互联网大厂都坐不住了&#xff0c;纷纷推出自己的大模型产品。 前段时间&#xff0c;“科大讯飞版”的 ChatGPT 正式上线了&#…

uniapp pc端和移动端列表上拉刷新加载分页

效果图&#xff1a; tips: 实现了pc端和移动端兼容 代码实现&#xff1a; html: <view v-if"answerList.length > 1" style"padding:30rpx 0;color:#888;text-align: center;"><view>{{loadMore}}</view> </view>data: …

一键切换IP地址:电脑IP更改的简便方法

今天我要和大家分享一个电脑IP更改的简便方法——一键切换IP地址。如果您想要更改电脑的IP地址&#xff0c;无需繁琐的设置和复杂的步骤&#xff0c;只需使用以下简单的方法&#xff0c;即可轻松实现IP地址的切换。让我们开始吧&#xff01; 1、使用批处理脚本 批处理脚本是一…

如何在使用JetBrains IDE时文本编辑更高效?这个IdeaVim好用

IdeaVim 插件已经发布一段时间了&#xff0c;它帮助开发者利用 Vim 的强大功能扩展 JetBrains IDE。JetBrains 内部有一个专属团队维护此插件&#xff0c;这为您提供了两项优势&#xff1a;以键盘为中心的编辑器和 IDE 的支持。 获取JetBrains IDE新版下载 Vim为文本中的跳转…

伦敦金的交易时间究竟多长?

接触过伦敦金交易的投资者&#xff0c;应该都知道自己根本不用担心市场上没有交易的机会&#xff0c;因为它全天的交易时间长达20多个小时&#xff0c;也就是在每一个正常的交易日&#xff0c;除去交易平台中途短暂的系统维护时间&#xff0c;投资者几乎全天都可以做盘。 伦敦金…

银河麒麟 ARM 架构 离线安装Docker

1. 下载对应的安装包 进入此地址下载对应的docker 离线安装包 下载地址 将文件上传到服务器 解压此文件 tar zxf docker-18.09.1.tgz将 docker 相关命令拷贝到 /usr/bin&#xff0c;方便直接运行命令 cp docker/* /usr/bin/启动Docker守护程序 dockerd &验证是否安装成…