uniapp 微信小程序:更新

news/2024/11/8 16:54:28/

uniapp 微信小程序:更新

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

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

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

小程序更新机制

  1. 启动时同步更新
    1.1. 定期检查发现版本更新:微信运行时,会定期检查最近使用的小程序是否有更新。如果有,下次启动打开新版。
    1.2. 用户长时间未使用小程序:会强制同步检查版本更新。(下载新版失败,还是会用本地旧版)
  2. 启动时异步更新
    2.1. 小程序每次冷启动时,都会异步检查是否有更新版本。如果发现有新版本,将会异步下载新版本的代码包。但当次启动仍会使用客户端本地的旧版本代码,即新版本的小程序需要等下一次冷启动才会使用。

所以我们要处理的是:热启动时检测更新,如果有就强制更新。在 onShow 生命周期中监听。

uni.getUpdateManager

const updateManager = uni.getUpdateManager();export default {data() { return {};	},onShow: function() {// 当向小程序后台请求完新版本信息,会进行回调。res: {hasUpdate: true, version: 1.0.0}updateManager.onCheckForUpdate(function (res) {if (res.hasUpdate) {					 // 有更新uni.showLoading({title:'更新中...'}); // 开始下载前,显示Loading}});// 当新版本下载完成,会进行回调updateManager.onUpdateReady(function () {uni.hideLoading();   // 关闭 Loading uni.showModal({		// 弹确认框(强制更新)title:'更新提示',content:'更新完毕,是否重启?',success:function (res) {if (res.confirm) {updateManager.applyUpdate(); // 强制小程序重启并使用新版本。}}})});// 当新版本下载失败,会进行回调updateManager.onUpdateFailed(function () {uni.hideLoading();	// 关闭 Loading uni.showToast({ title:'更新失败,稍后再试...', icon:"error" });});},methods: {	}
};

以上外码中使用 uni 如果直接是微信小程序项目换成 wx 即可。

开发环境调试

  1. 微信开发者工具上可以通过「编译模式」下的「下次编译模拟更新」开关来调试
  2. 小程序开发版/体验版没有「版本」概念,所以无法在开发版/体验版上测试更版本更新情况

参考资料

uni.getUpdateManager()

小程序运行机制
小程序更新机制
wx.getUpdateManager


http://www.ppmy.cn/news/768862.html

相关文章

Prometheus - Concept

一 Prometheus 是什么 Prometheus 是一个开源的 监控和报警系统 。该系统内置和基于时间序列地抓取、存储、查询、绘图数据、报警。 现在是一个开源项目,继 K8S 后的第二个云原生计算基金会的托管项目,可见其火爆程度。 二 Prometheus 的特征 Promet…

解决mac系统大小写切换异常问题

码农打字最要紧的是什么?当然是大小写切换,然而最近我遇到大小写无法正常切换的bug,一按中英文按钮直接转到系统输入法,取消勾选中英文切换输入法也没用。最后baidu几天,发现是微信老问题一直没修复,把微信…

mac切换node版本

1.安装node环境 npm install -g n 2.将node升级到稳定版本 sudo n stable 3.安装最新的node版本 sudo n latest 4.安装指定的node版本(最常用) sudo n v14.17.4 // 版本v自定义 5、检查目前安装了哪些版本的node,会出现已安装的node版本&am…

MacbookPro双显卡切换使用命令

sudo pmset -a GPUSwitch 0 // 强制使用集显 sudo pmset -a GPUSwitch 1 // 强制使用独显 sudo pmset -a GPUSwitch 2 // 自动切换模式

【nvm】mac系统切换node版本之后,yarn等全局安装的包都没了

切换回去就有了,看到网上的解释是node中npm下载的包只在当前版本的node下使用,切换后需要重新下载,我在win上面切换好像没有出现这种情况 https://www.nuomiphp.com/t/60e01b75c5e91a05f526edc1.html

mac下Python2.7和Python3之间切换

安装Python3.X版本 因为系统自带了Python2.7,所以我们首先需要安装Python3.X版本。 安装教程:《Mac版Python3安装/升级》 Python版本切换 路径 首先我们来看2个版本的安装路径: Python2.7: /System/Library/Frameworks/Python…

Mac系统下快捷切换到Win系统的方法

平常需要点击4部操作才可以重新启动到Win系统,通过下面的方法可以一步搞定。 使用AppleScript Editor 编辑保存如下脚本,使用的时候双击运行即可 do shell script "bless -mount /Volumes/BOOTCAMP/ -legacy -setBoot -nextonly" password &q…

Mac 如何切换不同版本python环境

Mac 如何切换不同版本python环境 Mac自带的python版本是python2.7,目前使用较多的是3.x的版本 将默认的python版本由2.x切换到3.x python2.7自带的,无需处理 环境变量如下: export PATH”/usr/bin/python2.7:${PATH}“ (我的环境变量&…