uniapp版本升级
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.操作代码
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里使用
如果接口返回的版本>系统现在本身的版本号,那么就弹出提示框!
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();}
};
相关文章:
uniapp版本升级
1.样式 登录进到首页,弹出更新提示框,且不可以关闭,侧边返回直接退出! 有关代码: <uv-popup ref"popupUpdate" round"8" :close-on-click-overlay"false"><view style"…...
Django ORM解决Oracle表多主键的问题
现状 以Django 3.2为例 Django ORM 设计为默认使用单一主键(通常是自增的 id 字段),这一选择主要基于以下核心原因: 简化ORM设计与操作 统一访问方式外键关联简化 避免歧义冲突 主键语义明确防止隐式依赖 性能与数据库兼容 索引…...
机器学习2 (笔记)(朴素贝叶斯,集成学习,KNN和matlab运用)
朴素贝叶斯模型 贝叶斯定理: 常见类型 算法流程 优缺点 集成学习算法 基本原理 常见方法 KNN(聚类模型) 算法性质: 核心原理: 算法流程 优缺点 matlab中的运用 朴素贝叶斯模型 朴素贝叶斯模型是基于贝叶斯…...
ubuntu解决普通用户无法进入root
项目场景: 在RK3566上移植Ubuntu20.04之后普通用户无法进入管理员模式 问题描述 在普通用户使用sudo su试图进入管理员模式的时候报错 解决方案: 1.使用 cat /etc/passwd 查看所有用户.最后一行是 若无用户,则使用 sudo useradd -r -m -s /…...
Time Constant | RC、RL 和 RLC 电路中的时间常数
注:本文为 “Time Constant” 相关文章合辑。 机翻,未校。 How To Find The Time Constant in RC and RL Circuits June 8, 2024 💡 Key learnings: 关键学习点: Time Constant Definition: The time constant (τ) is define…...
数据结构测试题2
一、单选题(每题 2 分,共20分) 1. 栈和队列的共同特点是( A )。 A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 2. 用链接方式存储的队列,在进行插入运算时( C ) A. 仅修改头指针 B. 头…...
在虚拟机里运行frida-server以实现对虚拟机目标软件的监测和修改参数(一)(android Google Api 35高版本版)
frida-server下载路径 我这里选择较高版本的frida-server-16.6.6-android-x86_64 以root身份启动adb 或 直接在android studio中打开 adb root 如果使用android studio打开的话,最好选择google api的虚拟机,默认以root模式开启 跳转到下载的frida-se…...
mysql_store_result的概念和使用案例
mysql_store_result() 是 MySQL C API 中的一个函数,用于检索一个完整的结果集到一个客户端。当执行一个查询(通常是 SELECT 查询)并希望处理所有返回的数据时,可以使用此函数。 概念 mysql_store_result() 函数的原型如下&…...
Linux进程调度与等待:背后的机制与实现
个人主页:chian-ocean 文章专栏-Linux 前言: 当一个进程发起某种操作(如I/O请求、信号、锁的获取等),但该操作需要的资源暂时不可用时,进程会被操作系统挂起,进入“等待队列”或“阻塞状态”。…...
网易云音乐歌名可视化:词云生成与GitHub-Pages部署实践
引言 本文将基于前一篇爬取的网易云音乐数据, 利用Python的wordcloud、matplotlib等库, 对歌名数据进行深入的词云可视化分析. 我们将探索不同random_state对词云布局的影响, 并详细介绍如何将生成的词云图部署到GitHub Pages, 实现数据可视化的在线展示. 介绍了如何从原始数据…...
单片机基础模块学习——DS18B20温度传感器芯片
不知道该往哪走的时候,就往前走。 一、DS18B20芯片原理图 该芯片共有三个引脚,分别为 GND——接地引脚DQ——数据通信引脚VDD——正电源 数据通信用到的是1-Wier协议 优点:占用端口少,电路设计方便 同时该协议要求通过上拉电阻…...
《网络数据安全管理条例》施行,企业如何推进未成年人个人信息保护(下)
文章目录 前言三、全流程推进未成年人个人信息保护1、处理前:未成年人个人信息处理的告知同意2、处理中:加强个人信息处理流程管理3、处理后:落实个人信息保护合规审计四、大型网络平台应每年发布社会责任报告前言 《网数条例》颁布前,我国已针对未成年人个人信息保护陆续…...
书生大模型实战营3
文章目录 L0——入门岛git基础Git 是什么?Git 中的一些基本概念工作区、暂存区和 Git 仓库区文件状态分支主要功能 Git 平台介绍GitHubGitLabGitee Git 下载配置验证下载 Git配置 Git验证 Git配置 Git常用操作Git简易入门四部曲Git其他指令 闯关任务任务1: 破冰活动…...
Spring Boot 集成 WebClient 实战教程 实现同步、异步请求处理以及响应式编程、响应式流、响应式Mono
该项目介绍springboot集成WebClient 实现服务的请求操作 示例中演示了,如何配置WebClient的请求头,请求参数等相关参数,实现同步、异步请求处理以及响应式编程、响应式流、响应式Mono。 为什么使用WebClient 不用RestTemplate 在 Spring Framework 5.0 及更高版本中,Res…...
C语言深入解析 printf的底层源码实现
深入解析 printf 的底层源码实现 printf 是 C 标准库中最常用的函数之一,用于格式化输出字符串。它的底层实现复杂且高效,包含多个模块化的函数和机制。本文结合 GNU C Library(glibc)的源码,详细分析 printf 的实现原…...
go 循环处理无限极数据
数据表结构: CREATE TABLE permission (id int(11) NOT NULL AUTO_INCREMENT COMMENT 权限ID,permission_name varchar(255) DEFAULT NULL COMMENT 权限名称,permission_url varchar(255) DEFAULT NULL COMMENT 权限路由,status tinyint(1) DEFAULT NULL COMMENT 权…...
C# Dynamic关键字
一、引言:开启动态编程之门 在 C# 的编程世界里,长久以来我们习惯了静态类型语言带来的严谨与稳定。在传统的 C# 编程中,变量的类型在编译时就已经确定,这就像是给每个变量贴上了一个固定的标签,在整个代码执行过程中…...
ReactNative react-devtools 夜神模拟器连调
目录 一、安装react-devtools 二、在package.json中配置启动项 三、联动 一、安装react-devtools yarn add react-devtools5.3.1 -D 这里选择5.3.1版本,因为高版本可能与夜神模拟器无法联动,导致部分功能无法正常使用。 二、在package.json中配置启…...
【教学类-89-02】20250128新年篇02——姓名藏头对联(星火讯飞+Python,五言对联,有横批)
背景需求: 过年了,我想用幼儿的名字写对联,但是我根本不会写,于是尝试让AI来写。 1.我班的孩子的名字都是2字和3字的 2.惊喜发现,AI它很快就能生成带名字的对联 但是观察发现,如果是二个名字的对联&#…...
装机爱好者的纯净工具箱
对于每一位电脑用户来说,新电脑到手后的第一件事通常是检测硬件性能。今天为大家介绍一款开源且无广告的硬件检测工具——入梦工具箱。 主要功能 硬件信息一目了然 打开入梦工具箱,首先看到的是硬件信息概览。这里不仅包含了内存、主板、显卡、硬盘等常…...
万象视界灵坛惊艳案例:浅蓝格点背景中生成的‘同步率’进度条动态响应过程
万象视界灵坛惊艳案例:浅蓝格点背景中生成的"同步率"进度条动态响应过程 1. 效果展示概述 在视觉识别领域,传统界面往往显得单调乏味。万象视界灵坛通过创新的像素风格设计,将复杂的语义对齐过程转化为一场视觉盛宴。本次展示的核…...
如何为华硕笔记本安装轻量级性能控制工具:G-Helper完整指南
如何为华硕笔记本安装轻量级性能控制工具:G-Helper完整指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Stri…...
Magisk完整实践指南:从Root权限获取到系统级定制
Magisk完整实践指南:从Root权限获取到系统级定制 【免费下载链接】Magisk The Magic Mask for Android 项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk Magisk作为Android系统Root权限管理的主流解决方案,提供了系统级定制能力而无需修…...
BGE-M3优化指南:CPU环境下提升语义分析推理速度的3个技巧
BGE-M3优化指南:CPU环境下提升语义分析推理速度的3个技巧 1. 引言 在当今企业级AI应用中,语义相似度分析已成为知识检索、智能客服和内容推荐等场景的核心技术。BAAI/bge-m3作为当前最强大的开源语义嵌入模型之一,以其卓越的多语言支持和长…...
VMware Workstation 16开机自启踩坑实录:从环境变量报错到bat脚本优化,一篇搞定
VMware Workstation 16开机自启全攻略:从环境变量到脚本优化的深度实践 每次重启服务器后手动打开虚拟机实在是个体力活。上周我负责维护的测试环境又因为忘记启动虚拟机导致整个团队阻塞了半天,这种低级错误让我决定彻底解决VMware Workstation的开机自…...
探索声发射 b 值:Matlab 程序之旅
声发射b值,Matlab程序在材料科学和岩石力学等领域,声发射(Acoustic Emission,AE)技术是研究材料内部损伤演化的重要手段。而声发射 b 值作为其中一个关键参数,能反映材料内部微破裂的特征。今天,…...
PyMobileDevice3 高效异步架构解析:深入理解iOS设备通信协议栈实现
PyMobileDevice3 高效异步架构解析:深入理解iOS设备通信协议栈实现 【免费下载链接】pymobiledevice3 Pure python3 implementation for working with iDevices (iPhone, etc...). 项目地址: https://gitcode.com/gh_mirrors/py/pymobiledevice3 PyMobileDev…...
Treap(树堆)实战:从原理到代码实现与性能对比
1. 什么是Treap:当二叉搜索树遇上堆 第一次听说Treap这个数据结构时,我正被红黑树的旋转操作折磨得焦头烂额。直到某天在算法竞赛讨论区看到有人用20行代码实现了一个"魔法平衡树",才真正打开了新世界的大门。Treap这个名字本身就揭…...
轻量级嵌入式按键驱动库:BartOS-button设计与多平台实践
1. BartOS-button 库概述BartOS-button 是为 BartOS 嵌入式实时操作系统项目配套开发的轻量级按键驱动库,专为资源受限的 IoT 终端设备设计。该库不依赖特定硬件抽象层(HAL),采用纯 C 实现,支持裸机(Bare-m…...
别再让扰动拖慢你的系统!手把手教你用MATLAB/Simulink实现非线性扰动观测器(附完整代码)
非线性扰动观测器实战指南:从理论到MATLAB/Simulink完整实现 在控制工程领域,非线性扰动观测器(NDOB)就像一位隐形的守护者,默默抵消着系统运行中各种未知干扰的影响。想象一下,当你精心设计的控制器因为突…...
