uniapp App强制更新

news2024/11/28 8:45:29

需要使用DClound插件市场的一个插件挺好用的!
app升级、整包更新和热更新组件 支持vue3 支持打开安卓、苹果应用市场,wgt静默更新https://ext.dcloud.net.cn/plugin?id=7286

开始贴代码

// @/utils/method.js

/**
 * 获取当前app最新版本
 * @param number versionCode 当前app的版本号
 */
export function getAppCurrentVersion(versionCode) {
	return new Promise(async (resolve, reject) => {
		const params = {
			// android或者ios
			system: uni.$u.os() == 'ios' ? 1 : 0,
			// 版本号 如:100
			editionNumber: versionCode || ''
		}
        
        // 需要改成自己的服务端的获取app最新版本的接口...
        // 接口返回值要跟要求的字段一样
		const res = await getAppVersion(params)
		resolve(res.data)
	})
}

// #ifdef APP-PLUS
// app端强制更新
export function checkAppUpdate() {
	getAppCurrentVersion().then(data => {
		const obj = {
			system: data.system,
			describe: data.describe, // 版本更新内容
			edition_url: data.editionUrl, // apk、wgt包下载地址或者应用市场地址
			edition_force: data.editionForce, // 是否强制更新 0代表否 1代表是
			package_type: data.packageType, // 0是整包升级(apk或者appstore或者安卓应用市场) 1是wgt升级
			edition_issue: data.editionIssue, // 是否发行 0否 1是 为了控制上架应用市场审核时不能弹出热更新框
			// 版本号 最重要的manifest里的版本号 (检查更新主要以服务器返回的edition_number版本号是否大于当前app的版本号来实现是否更新)
			edition_number: data.editionNumber,
			edition_name: data.editionName, // 版本名称 manifest里的版本名称
			edition_silence: data.editionSilence // 是否静默更新 0代表否 1代表是
		}

		plus.runtime.getProperty(plus.runtime.appid, (inf) => {
			// 判断后台返回版本号是否大于当前应用版本号 && 是否发行(上架应用市场时一定不能弹出更新提示)
			if (Number(obj.edition_number) > Number(inf.versionCode) && obj.edition_issue == 1) {
				/**
				 * 如果是wgt升级,并且是静默更新
				 * 注意!如果是手动检查新版本,就不用判断静默更新,请直接跳转更新页,不然点击检查新版本后会没反应
				 */
				if (obj.package_type == 1 && obj.edition_silence == 1) {
					// 调用静默更新方法 传入下载地址
					silenceUpdate(obj.edition_url)
				} else {
					/**
					 * 跳转更新页面
					 * 注意!如果pages.json第一页的代码里有一打开就跳转其他页面的操作,下面这行代码最好写在setTimeout里面设置延时3到5秒再执行
					 */
					uni.navigateTo({
						url: '/uni_modules/rt-uni-update/components/rt-uni-update/rt-uni-update?obj=' + JSON.stringify(obj)
					})
				}
			} else {
				// 如果是手动检查新版本 需开启以下注释
				// uni.showModal({
				// 	title: '提示',
				// 	content: '已是最新版本',
				// 	showCancel: false
				// })
			}
		})
	})
}
// #endif

// #ifdef MP-WEIXIN
// 微信小程序更新检测
export function checkUpdate() {
    // 获取更新管理器对象
	const updateManager = uni.getUpdateManager()
	updateManager.onCheckForUpdate(res => {
		if (res.hasUpdate) {
			updateManager.onUpdateReady(() => {
				uni.showModal({
					title: '更新提示',
					content: '新版本已经准备好,点击确定重新启动',
					showCancel: false,
					success: res => {
						if (res.confirm) {
							updateManager.applyUpdate()
						}
					}
				})
			})
			updateManager.onUpdateFailed(() => {
				uni.showModal({
					title: '提示',
					content: '检查到有新版本,但是下载失败,请检查网络设置',
					showCancel: false
				})
			})
		}
	})
}
// #endif

然后在 App.vue 页面 下的 onShow 方法调用前面的方法

// App.vue

import { checkAppUpdate, checkUpdate } from '@/utils/method.js'
export default {
    onShow() {
        // #ifdef MP-WEIXIN
        checkUpdate()
        // #endif

        // #ifdef APP-PLUS
		checkAppUpdate()
		// #endif
    }
}

附带个检测微信小程序的更新~

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

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

相关文章

【JAVA】这几个JAVA学习网站你绝不能错过(教学课程篇)

个人主页:【😊许思王】 文章目录 前言HOW2J.CNw3cschool菜鸟教程慕课网开课吧黑马程序员B站 前言 JAVA很难学?学不会怎么办?找对学习网站,让你轻松解决困难。 HOW2J.CN HOW2J.CN是我自认为最好的JAVA学习网站&#x…

df -h 查看Used+Avail != Size

问题描述: 在测试过程中发现,该机器的根目录空间 41G 5.7G ! 50G,即 Used Avail ! Size 问题原因: 经过搜索,了解到这种情况可能是Linux系统默认的文件保留块导致的(Linux系统默认保留5%的容量作为应急…

论文 | 一分钟快速找到自己研究领域的顶刊

1. 打开Web of Science https://www.webofscience.com/wos/alldb/basic-search 2. 点击右上角:产品,再选中:Journal Citation Reports 至于JCR是什么,请看下面的拓展部分 3. 单击顶部的 Categories Categories 是分类、类别的…

LaTeX 速查手册

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

MachineLearningWu_11_NeuralNetworkLayer

x.1 Neural Network layer design 我们接下来来讲解一下深度学习中,神经网络是如何架构的。对于一个具有两层的的神经网络,我们将输入层置为layer0,将第一层隐藏层置为layer1,将 w 2 [ 1 ] w_2^{[1]} w2[1]​标记为第一层中&…

nginx基本使用

这是一份完整的nginx配置文件: #user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024; }http {include mi…

23款奔驰GLS450更换迈巴赫GLS600外观套件,尽显奢华

在外观上不要过分的张扬,低调的同时还要彰显强大的气场,换装迈巴赫专属套件,迈巴赫专属踏板,还有迈巴赫的醒目M标志,车身轮廓和线条方面,奔驰GLS450和迈巴赫GLS600尺寸及其契合,只需通过增加一些…

LayUi基础入门【附有案例从0到1详解】

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于LayUi的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.LayUi的创作背景 二.LayUi是什么 三.…

请收藏!2023年全栈开发人员实战进阶指南终极版

全栈工程师在过去十年中越来越受到欢迎,而且在国内的就业环境下,它是更适合从技术转管理的职位。 但究竟什么是全栈工程师?他需要哪些技术能力?如何才能成为一名优秀的全栈工程师?今天这篇文章就给大家全方位分享一下…

ES6基础语法

目录 解构 数组解构 对象解构 基本数据解构 对象 对象简写 箭头函数 扩展运算符 函数参数解构 对象API拓展 Object.is() Object.assign() Object.getPrototypeOf() Object.setPrototypeOf() Object.keys() Object.values() Object.entries() Object.fromEntries()…

Java --- 云尚优选项目

目录 一、项目工程搭建 二、配置项目相关maven依赖 2.1、cjc.ssyx父工程依赖 2.2、common模块pom依赖 2.3、common-util模块pom依赖 2.4、service-util模块pom依赖 2.5、model模块pom依赖 2.6、service模块pom依赖 三、编写相关工具类 3.1、mybatis-plus分页查询配置…

SpringMVC学习笔记一

目录 一、SpringMVC概述二、入门案例1.导入相关依赖2.配置web.xml3.配置SpringMVC4.创建测试用的html页面5.编写Controller 三、请求映射规则RequestMapping1.RequestMapping注解标识的位置2.RequestMapping注解value属性3.RequestMapping注解的method属性4.RequestMapping注解…

Vector - CANoe - 测试报告配置

目录 一、测试报告格式设置 二、测试报告格式转换 1、Test Report Viewer format 转换为 PDF 格式

【ELK 企业级日志分析系统】

目录 一、ELK 概述1、ELK 简介1、可以添加的其它组件:2、filebeat 结合 logstash 带来好处: 2、为什么要使用 ELK3、完整日志系统基本特征4、ELK 的工作原理 二、实验操作1、ELK Elasticsearch 集群部署(在Node1、Node2节点上操作&#xff09…

【SpringBoot_Error】关于SpringBoot项目中经常出现yml/xml识别不到的问题

Problems 关于关于SpringBoot项目中经常出现yml/xml识别不到的问题 Solution 在pom.xml文件的<build></build>标签中添加如下代码&#xff1a; > <build><resources><!--检测mapperxml&#xff0c;本项目数据访问层的SQL xml文件放在Java包…

雷达人体存在感应器成品,雷达探测感知联动,空间智能化控制应用

随着科技的日新月异&#xff0c;人机交互的方式也不断推陈出新。在科技的不断发展与创新的驱动下&#xff0c;人们的生活正逐渐变得更加智能化和便捷化。 智能雷达人体存在感应器&#xff0c;凭借其呼吸探测技术&#xff0c;实现真正的人体存在探测&#xff0c;将智慧酒店、办…

C# 位1的个数

191 位1的个数 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 ‘1’ 的个数&#xff08;也被称为汉明重量&#xff09;。 提示&#xff1a; 请注意&#xff0c;在某些语言&#xff08;…

浅谈虚拟DOM、Diff算法、Key机制

您好&#xff0c;如果喜欢我的文章&#xff0c;可以关注我的公众号「量子前端」&#xff0c;将不定期关注推送前端好文~ 虚拟DOM 我们都知道虚拟DOM带来的好处&#xff0c;多次更新数据层的数据&#xff0c;最后异步处理只进行一次页面重绘&#xff0c;而这中间的奥秘就是虚拟…

论文 | 一分钟快速找到自己研究领域的核心期刊

进入知网官网 https://www.cnki.net/ 点击搜索框右边的&#xff1a;出版物检索 鼠标放到顶部的 出版来源导航 旁边的倒三角上 选择期刊导航&#xff1a; 点击核心期刊导航 找到自己感兴趣的领域 点进去就可以看到该期刊中发表的论文&#xff1a;

postgresql regular lock常规锁 烤的内嫩外焦,入口即化

​专栏内容&#xff1a; postgresql内核源码分析 手写数据库toadb 并发编程 个人主页&#xff1a;我的主页 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 介绍 常规锁&#xff0c;主要用于数据库对象的加锁&#xff0c…