uniapp版本升级

news/2025/2/2 17:03:51/

1.样式

登录进到首页,弹出更新提示框,且不可以关闭,侧边返回直接退出!

有关代码:

<uv-popup ref="popupUpdate" round="8" :close-on-click-overlay="false"><view style="width: 450rpx; display: flex; flex-direction: column; align-items: center; padding: 20rpx 0 50rpx 0"><text style="font-size: 23px">提示</text><text style="font-size: 18px; margin-top: 20rpx">发现新版本,立即升级!</text><view style="margin-top: 30rpx"><uv-button size="normal" type="primary" @click="sureUpdate" :customStyle="{ width: '300rpx' }">确认</uv-button></view></view></uv-popup>

2.操作代码

javascript">const sureUpdate = () => {showFly(true, '');
};
const showFly = (isShowCancel, url) => {if (true) {// clearInterval(updateAction)uni.showLoading({title: '更新中……'});try {const appUrl = config.appDownloadUrl;const downloadTask = uni.downloadFile({url: appUrl, // 这个是最新版本apk包的地址success: (res) => {uni.hideLoading();if (res.statusCode === 200) {console.log('res.tempFilePath :>> ', res.tempFilePath);plus.runtime.install(res.tempFilePath,{force: true},(_res) => {uni.showToast({title: '更新成功,重启中',duration: 1600});popupUpdate.value.close();plus.runtime.restart();uni.hideToast();});} else {uni.showToast({title: '下载失败!',icon: 'none',duration: 800});}}});// 下载进度downloadTask.onProgressUpdate((res) => {// _this.startDown = true;// _this.calcPro(res.progress);console.log('下载进度' + res.progress);// console.log('已经下载的数据长度' + res.totalBytesWritten);// console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);// // 测试条件,取消下载任务。// if (res.progress > 50) {//     downloadTask.abort();// }});} catch (error) {console.log('error :>> ', error);uni.hideLoading();} finally {}}
};

2.是否更新

在进到首页最重要的一环就是判断系统是否需要更新,在onShow里使用

如果接口返回的版本>系统现在本身的版本号,那么就弹出提示框!

javascript">nextTick(() => {// popupUpdate.value.open();isUpdate();});
const isUpdate = () => {const WXP_APP_VERSION = uni.getStorageSync('appVersion');const curVersion = uni.getStorageSync('version'); // 当前版本let str = WXP_APP_VERSION.split('.').join('');let str1 = curVersion.split('.').join('');console.log(Number(str));console.log(Number(str1));if (curVersion && WXP_APP_VERSION) {if (Number(str) > Number(str1)) {popupUpdate.value.open();} else {popupUpdate.value.close();}} else {popupUpdate.value.close();}
};


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

相关文章

如何实现滑动列表功能

文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了沉浸式状态栏相关的内容&#xff0c;本章回中将介绍SliverList组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1 概念介绍 我们在这里介绍的SliverList组件是一种列表类组件&#xff0c;类似我们之前介…

【漫话机器学习系列】067.希腊字母(greek letters)-写法、名称、读法和常见用途

希腊字母&#xff08;Greek Letters&#xff09; 希腊字母在数学、科学、工程学和编程中广泛使用&#xff0c;常用于表示变量、常量、参数、角度等。以下是希腊字母的完整列表及其常见用途。 大写与小写希腊字母表 大写小写名称&#xff08;英文&#xff09;名称&#xff08;…

开源的瓷砖式图像板系统Pinry

简介 什么是 Pinry &#xff1f; Pinry 是一个开源的瓷砖式图像板系统&#xff0c;旨在帮助用户轻松保存、标记和分享图像、视频和网页。它提供了一种便于快速浏览的格式&#xff0c;适合喜欢整理和分享多种媒体内容的人。 主要特点 图像抓取和在线预览&#xff1a;支持从网页…

python学opencv|读取图像(五十)使用addWeighted()函数实现图像加权叠加效果

【1】引言 前序学习进程中&#xff0c;学习了图像互相叠加的不同操作方法&#xff0c;包括add()函数直接叠加BGR值和使用bitwise()函数对BGR值进行按位计算叠加等&#xff0c;相关文章链接包括且不限于&#xff1a; python学opencv|读取图像&#xff08;四十二&#xff09;使…

AI导航工具我开源了利用node爬取了几百条数据

序言 别因今天的懒惰&#xff0c;让明天的您后悔。输出文章的本意并不是为了得到赞美&#xff0c;而是为了让自己能够学会总结思考&#xff1b;当然&#xff0c;如果有幸能够给到你一点点灵感或者思考&#xff0c;那么我这篇文章的意义将无限放大。 背景 随着AI的发展市面上…

Docker/K8S

文章目录 项目地址一、Docker1.1 创建一个Node服务image1.2 volume1.3 网络1.4 docker compose 二、K8S2.1 集群组成2.2 Pod1. 如何使用Pod(1) 运行一个pod(2) 运行多个pod 2.3 pod的生命周期2.4 pod中的容器1. 容器的生命周期2. 生命周期的回调3. 容器重启策略4. 自定义容器启…

使用Python Dotenv库管理环境变量

使用Python Dotenv库管理环境变量 在开发Python应用程序时&#xff0c;管理配置信息&#xff08;如API密钥、数据库连接字符串等&#xff09;是一个常见的需求。为了确保安全性和灵活性&#xff0c;通常不建议将这些敏感信息硬编码在代码中。这时&#xff0c;dotenv库就派上了…

高可用 Keepalived 服务部署流程

一、配置文件 vim /etc/keepalived/keepalived.confGLOBAL CONFIGURATION --- 全局配置部分VRRPD CONFIGURATION --- VRRP协议配置部分LVS CONFIGURATION --- LVS服务管理配置部分[rootlb01 ~]# cat /etc/keepalived/keepalived.…