当前位置: 首页 > news >正文

uniapp项目实践总结(十九)版本更新和热更新实现方法

导语:当一个 APP 应用开发完成以后,就要上架应用商店,但有时候修改一些小问题或者推出一些活动,又不想频繁地提交应用商店审核,那么就可以使用应用内更新功能来进行应用的版本升级更新或热更新,下面就介绍一下实现的方法。

目录

  • 准备工作
  • 原理分析
  • 实战演练
  • 案例展示

准备工作

  • /pages/index文件夹下面新建一个version.vue的组件;
  • 按照前面文章所说的页面结构,编写好预定的页面;

原理分析

下面是应用更新的原理总结。

安装包版本更新

  • 通过uni.getSystemInfoSync方法的appVersion属性获取到应用当前安装包版本号;
  • 通过请求版本更新接口获取线上的安装包版本号;
  • 比较两个安装包版本号的大小,如果一致不更新,如果不一致,线上大于当前更新版本,线上小于当前不更新;

资源包版本更新

  • 通过uni.getStorage获取本地资源包版本号,如不存在,则通过uni.setStorage设置默认版本号;
  • 通过请求版本更新接口获取线上的资源包版本号;
  • 比较两个资源包版本号的大小,如果一致不更新,如果不一致,线上大于当前更新版本,线上小于当前不更新;

实战演练

模板使用

  • 比较版本号
<view class="version-box"><view class="version-item">版本1:<inputclass="version-item-ipt"type="text"placeholder="请输入版本1"v-model="versionInfo.v1" /></view><view class="version-item">版本2:<inputclass="version-item-ipt"type="text"placeholder="请输入版本2"v-model="versionInfo.v2" /></view><view class="version-item"><button class="version-item-btn" type="primary" size="mini" @click="compareVersion('test')">比较版本</button></view><view class="version-item" v-show="versionInfo.text"><text>比较结果:</text><text class="version-item-txt">{{ versionInfo.text }}</text></view>
</view>
  • 获取线上版本
<!-- #ifdef APP-PLUS -->
<view class="version-box"><view class="version-item"><button class="version-item-btn" type="primary" size="mini" @click="getVersion">获取版本</button></view><view class="version-item"> 当前版本: {{ checkInfo.current }} </view><view class="version-item"> 线上版本: {{ checkInfo.online }} </view><view class="version-item"> 当前资源包版本: {{ checkInfo.currentSource }} </view><view class="version-item"> 线上资源包版本: {{ checkInfo.onlineSource }} </view>
</view>
<!-- #endif -->
  • 检测更新
<!-- #ifdef APP-PLUS -->
<vi

相关文章:

uniapp项目实践总结(十九)版本更新和热更新实现方法

导语:当一个 APP 应用开发完成以后,就要上架应用商店,但有时候修改一些小问题或者推出一些活动,又不想频繁地提交应用商店审核,那么就可以使用应用内更新功能来进行应用的版本升级更新或热更新,下面就介绍一下实现的方法。 目录 准备工作原理分析实战演练案例展示准备工作…...

一起学数据结构(8)——二叉树中堆的代码实现

在上篇文章中提到&#xff0c;提到了二叉树中一种特殊的结构——完全二叉树。对于完全二叉树&#xff0c;在存储时&#xff0c;适合使用顺序存储。对于非完全二叉树&#xff0c;适合用链式存储。本文将给出完全二叉树的顺序结构以及相关的代码实现&#xff1a; 1. 二叉树的结构…...

Linux环境变量配置说明(配置jdk为例-摘录自尚硅谷技术文档)

配置环境变量的不同方法 Linux的环境变量可在多个文件中配置,如/etc/profile&#xff0c;/etc/profile.d/.sh&#xff0c;~/.bashrc&#xff0c;~/.bash_profile等&#xff0c;下面说明上述几个文件之间的关系和区别。 bash的运行模式可分为login shell和non-login shell。 例…...

idea常用插件笔记

文章目录 Free Mybatis Toollombok插件idea插件导出导入 idea提供了很多好用的插件&#xff0c;之前都装了的&#xff0c;但是换了下电脑&#xff0c;什么都没了&#xff0c;所以记录下方便以后用。 Free Mybatis Tool mybatis跳转插件&#xff0c;再也不用费力的找xml了。 l…...

搜索二叉树【C++】

文章目录 二叉搜索树二叉搜索树的模拟实现构造函数拷贝构造函数赋值运算符重载函数析构函数Insert循环递归 Erase循环递归 Find循环递归 二叉搜索树的应用K模型KV模型 完整代码普通版本递归版本 二叉搜索树 二叉搜索树又称为二叉排序树&#xff0c;它或者是一棵空树&#xff0…...

华为云云耀云服务器L实例评测|认识redis未授权访问漏洞 漏洞的部分复现 设置连接密码 redis其他命令学习

前言 最近华为云云耀云服务器L实例上新&#xff0c;也搞了一台来玩&#xff0c;期间遇到过MySQL数据库被攻击的情况&#xff0c;数据丢失&#xff0c;还好我有几份备份&#xff0c;没有造成太大的损失。昨天收到华为云的邮箱提醒&#xff0c;我的redis数据库没有设置密码&…...

快速安装NGINX

快速安装NGINX #安装依赖包 yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel#下载NGINX curl -O https://nginx.org/download/nginx-1.21.6.tar.gz#解压NGINX tar -zxvf nginx-1.21.6.tar.gz cd nginx-1.21.6.tar.gz#配置 ./configure --prefix/…...

一台电脑远程内网的另外一台电脑,禁止远程的电脑连接外网,只允许内网连接

一台电脑远程内网的另外一台电脑&#xff0c;禁止远程的电脑连接外网&#xff0c;只允许内网连接 1.找到右下角网卡图标&#xff0c;右键图标选择“打开网络和共享中心”。 3、点击“更改适配器设置”。 4、右键正在使用的网卡“本地连接”打开属性 5、找到“internet协…...

山西电力市场日前价格预测【2023-09-24】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-09-24&#xff09;山西电力市场全天平均日前电价为496.09元/MWh。其中&#xff0c;最高日前电价为705.54元/MWh&#xff0c;预计出现在14: 30。最低日前电价为333.70元/MWh&#xff0c;预计…...

MQ---第二篇

系列文章目录 文章目录 系列文章目录一、RabbitMQ事务消息二、RabbitMQ死信队列、延时队列一、RabbitMQ事务消息 通过对信道的设置实现 channel.txSelect();通知服务器开启事务模式;服务端会返回Tx.Select-Okchannel.basicPublish;发送消息,可以是多条,可以是消费消息提交…...

C++ 创建文件并写入内容

文章目录 1.问题2.filesystem3.示例参考文献 1.问题 C 如何向指定路径的文件写入内容呢&#xff1f; 这里有几点要求&#xff1a; 如果目录不存在需要自动创建。如果文件不存在需要自动创建。以覆盖的方式写入内容。 2.filesystem C17 带来了一个新的库&#xff1a;filesy…...

微信小程序rich-text里面写多行溢出显示省略号在ios中不显示的问题

问题&#xff1a;微信小程序rich-text里面写多行溢出显示省略号在ios中不显示的问题 解决方法&#xff1a;需要给一个默认的div标签&#xff0c;在div写行内样式 overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-o…...

解决Win11/10中Edge浏览器页面加载不出来、打不开问题|有网但是打不开,加载不了

问题症状 edge浏览器打不开&#xff0c;有网络能正常上网&#xff0c;但是edge浏览器无法浏览。网络质量很高&#xff0c;但是页面就是加载不出来&#xff0c;详情如下&#xff1a; &#xff08;我是在科学上网后造成这样子的原因&#xff0c;现在将我的方法分享一下&#xff…...

【DRAM存储器五】DRAM存储器的架构演进-part2

&#x1f449;个人主页&#xff1a;highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 参考书籍&#xff1a;《Memory Systems - Cache, DRAM, Disk》 目录 以提升吞吐…...

分享一个基于uniapp+springboot技术开发的校园失物招领小程序(源码、lw、调试)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…...

RabbitMQ工作模式——Routing路由模式

1.Routing路由模式 Routing生产者代码 public class Producer_Routing {public static void main(String[] args) throws IOException, TimeoutException {//1.创建连接工厂ConnectionFactory factory new ConnectionFactory();//2.设置参数factory.setHost("172.16.98.…...

Python字典的增删改查以及嵌套

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 &#x1f447; &#x1f447; &#x1f447; 更多精彩机密、教程&#xff0c;尽在下方&#xff0c;赶紧点击了解吧~ python源码、视频教程、插件安装教程、资料我都准备好了&#xff0c;直接在文末名片自取就可 字典 基础数…...

【淘宝开店】新手入门开网店教程

一、上架产品流程顺序 1. 上架10个产品2. 早中晚各上架1件产品3. 连续上架4天 二、产品培训 动销率要求: 店铺产品数必须>10公式: 店铺最近30天有销量产品数 / 店铺上架总产品数 * 100%1. 从动销率可以得出, 店铺产品不宜过多2. 小卖家前期最佳建议产品数10个 三、上架产品…...

计网第五章(运输层)(五)(TCP拥塞控制)

目录 一、基本概念 二、拥塞控制算法 慢开始&#xff1a; 拥塞避免&#xff1a; 快重传&#xff1a; 快恢复&#xff1a; 一、基本概念 若对网络中某一资源的需求超过了该资源所能提供的可用部分&#xff08;供不应求&#xff09;&#xff0c;网络性能就会变坏。 在计算…...

windows/ubuntu怎么修改hosts文件

windows系统修改方法&#xff1a; 第一步&#xff1a;用管理员权限打开记事本&#xff0c;或者visual studio。 第二步&#xff1a;用记事本或者vs打开地址C:\Windows\System32\drivers\etc\hosts文件&#xff0c;这个时候就可以直接修改了 Ubuntu22 LTS系统修改方法&#xf…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...

OCR MLLM Evaluation

为什么需要评测体系&#xff1f;——背景与矛盾 ​​ 能干的事&#xff1a;​​ 看清楚发票、身份证上的字&#xff08;准确率>90%&#xff09;&#xff0c;速度飞快&#xff08;眨眼间完成&#xff09;。​​干不了的事&#xff1a;​​ 碰到复杂表格&#xff08;合并单元…...

MeshGPT 笔记

[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭&#xff01;_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...