uni-app App版本更新

news2024/9/27 18:19:40

效果图:

       

前言

在移动应用开发中,确保用户能够及时更新到最新版本是非常重要的。本文将介绍如何在 uni-app 中实现 App 整包更新功能,并提供相关代码示例以帮助理解。

代码实现

2.1 引入模块

首先,我们需要引入用于处理更新的模块(App.vue文件里面-如下图):

import appUpdate from '@/uni_modules/leruge-app-update/js_sdk/leruge-app-update.js';

引入地址:@/uni_modules/leruge-app-update/js_sdk/leruge-app-update.js文件

gitee地址:app_document: App小功能文件模块

2.2 定义更新函数

     这段代码是一个接口请求(看不明白的可以看去主页看一下接口封装:https://blog.csdn.net/weixin_46166771/article/details/135764183?spm=1001.2014.3001.5501)

async loadData() {
    const that = this;

    // 获取应用的版本信息
    plus.runtime.getProperty(plus.runtime.appid, async function (wgtinfo) {
        try {
            // 调用接口检查更新
            const res = await that.$request({
                url: myApi.appUpdate, //引入接口文件
                method: 'GET',
                data: {
                    version: wgtinfo.version
                },
            });
            console.log(res);

            // 如果返回结果为200,说明有新版本
            if (res.code == 200) {
                const updateInfo = {
                    platform: 'android', // 更新平台
                    updateContent: '更新提示,检测到最新版本', // 更新提示内容
                    downUrl: res.result, // 下载链接
                    force: false, // 是否强制更新
                    mainColor: 'FF5B78' // 主色调
                };
                // 执行更新
                appUpdate(updateInfo);
            }
        } catch (e) {
            // 错误处理
            console.log(`这个接口错误:${myApi.appUpdate}`, e);
        } finally {
            // 可以在这里执行一些清理或结束操作
        }
    });
}

2.3 代码解析

2.3.1 获取版本信息

我们使用 plus.runtime.getProperty 方法获取当前应用的版本信息。这对于后续的更新检查至关重要,因为它帮助我们识别用户当前的应用版本。

plus.runtime.getProperty(plus.runtime.appid, async function (wgtinfo) { // ... });
2.3.2 发起更新请求

如果服务器返回状态码 200,说明有新版本可供更新。此时,我们构建更新信息对象 updateInfo,并调用 appUpdate 函数开始更新流程。

if (res.code == 200) {
    const updateInfo = {
         platform: 'android', // 更新平台
                    updateContent: '更新提示,检测到最新版本', // 更新提示内容
                    downUrl: res.result, // 下载链接
                    force: false, // 是否强制更新
                    mainColor: 'FF5B78' // 主色调
    };
    appUpdate(updateInfo);
}

App.vue文件全部代码

<script>
	import Vue from 'vue'
	import myApi from '@/utils/app.js' //调用接口使
	import appUpdate from '@/uni_modules/leruge-app-update/js_sdk/leruge-app-update.js'
	
	export default {
		onLaunch: function() {
			this.loadData()  //更新app控制
		},
		methods: {
			async loadData() { // 热更新
				const that =this
				plus.runtime.getProperty(plus.runtime.appid,async function(wgtinfo) {
					try {
						const res = await that.$request({
							url: myApi.appUpdate,
							method: 'GET',
							data: {
								version:wgtinfo.version
							},
						});
						console.log(res)
						if (res.code == 200) {
							const updateInfo = {
								platform: 'android',
								updateContent: '更新提示,检测到最新版本',
								downUrl: res.result,
								force: false,
								mainColor: 'FF5B78'
							}
							appUpdate(updateInfo)
						}
					} catch (e) {
						// 失败执行
						console.log(`这个接口错误:${myApi.goodsList}`)
					} finally {
						// 销毁执行
					}
				})	
			},
		}
	}
</script>


<style lang="scss">
	/*每个页面公共css */

</style>

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

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

相关文章

阿博图书馆管理:SpringBoot开发实践

第三章 系统分析 通过对系统功能模块分析可以得知&#xff0c;主要是对项目元素组合、分解和更换做出相应的单元&#xff0c;再通过系统模块来规划出一个原则&#xff0c;系统的设计首先是围绕用户需求进行开发设计的&#xff0c;主要是为了能够更好的管理信息和方便用户&#…

AI智能时代:哪款编程工具让你的工作效率翻倍?

引言 在日益繁忙的工作环境中&#xff0c;选择合适的编程工具已成为提升开发者工作效率的关键。不同的工具能够帮助我们简化代码编写、自动化任务、提升调试速度&#xff0c;甚至让团队协作更加顺畅。那么&#xff0c;哪款编程工具让你的工作效率翻倍&#xff1f;是智能的代码编…

MISC - 第七天(练习)

前言 各位师傅大家好&#xff0c;我是qmx_07&#xff0c;今天继续讲解MISC的相关知识点 [BJDCTF2020]just_a_rar 下载之后发现rar压缩包&#xff0c;名称为4位数&#xff0c;使用暴力破解 rar压缩包口令 2016 存放了一张jpg图片 使用StegSolve 工具Flie Format选项卡&#x…

网络编程:掌握TCP Socket和UDP Socket

IP地址&#xff1a; 两台计算机通信&#xff0c;双方都必须有IP地址。 IPV4地址有32位&#xff0c;由四个8位二进制组成&#xff0c;因为不好记所以我们把二进制转化为十进制&#xff0c;比如192.168.0.20&#xff0c;这称为点分十进制。 IPV6有128位&#xff0c;由8个16位的…

Splashtop 自收购 Foxpass 以来新业务增长62%

2024年9月24日 加利福尼亚州库比蒂诺 Splashtop 在简化远程办公解决方案领域处于领先地位&#xff0c;今天宣布继去年收购 Foxpass 之后&#xff0c;新的 Foxpass 业务实现了62%的增长。Splashtop 的 Foxpass Cloud RADIUS 可确保企业 Wi-Fi 网络安全&#xff0c;防止未经授权…

牛羊饲料加工机械成套设备:满足养殖需求

饲料加工机械成套设备在畜牧业中扮演着至关重要的角色&#xff0c;是保障畜禽健康成长和畜牧业发展的重要基础。这些设备通过配料、粉碎、混合等步骤&#xff0c;生产出不同畜禽需求的饲料&#xff0c;为畜牧业的可持续发展提供了有力支持。 饲料加工机械成套设备是牛羊养殖场…

机器学习常用的评价指标原理和代码

最近面试的时候&#xff0c;很多面试官问道了我项目中的一些评价指标的算法和原理&#xff0c;我觉得这确实也是一个很重要的内容&#xff0c;所以趁这个机会综合起来一块复习一下&#xff0c;在刷力扣的时候也不能忘记项目最常用的内容嘛。当然还包括一些深度学习的例如我项目…

OJ在线评测系统 判题机开发 保证Docker容器执行的安全性

实现Docker容器的安全性 我们现在怎么保证使用docker容器执行的安全性&#xff1f; docker只不过实现了系统与系统之间的隔离 真实情况还是需要我们去排查安全问题 毕竟没有绝对的安全 执行超时 占用内存 读文件信息泄露 执行死程序 超时设置 执行容器的时候 增加超时参…

FileLink跨网文件交换:高效、安全、灵活的企业文件传输新方案

在当今数字化时代&#xff0c;企业间的数据交流与协作已成为推动业务发展的关键要素。然而&#xff0c;网络边界的存在往往成为文件传输的障碍&#xff0c;尤其是跨网络环境的文件交换&#xff0c;更是面临诸多挑战。为了打破这一瓶颈&#xff0c;FileLink跨网文件交换系统应运…

《动手学深度学习》笔记2.1——神经网络从基础→进阶 (层和块 - 自定义块)

目录 0. 前言 原书正文&#xff08;第五章&#xff09; 第五章 - 第一节 - 层和块 - 自定义块 1. Sequential() PyTorch高级API 2. MLP() 无传入参数 3. MySequential() 传入任意层(块) 4. FixedHiddenMLP() 无传入参数-固定隐藏层 5. NestMLP() 传入嵌套块-多次嵌套 …

GPU共享技术深度剖析与总结

在人工智能和深度学习领域&#xff0c;GPU&#xff08;图形处理器&#xff09;已成为不可或缺的计算工具。随着深度学习模型的规模和复杂性的增加&#xff0c;单个GPU已经难以满足所有训练需求&#xff0c;GPU共享技术应运而生&#xff0c;成为提高训练效率的重要手段。本文将深…

【十八】MySQL 8.0 新特性

MySQL 8.0 新特性 目录 MySQL 8.0 新特性 概述 简述 1、数据字典 2、原子数据定义语句 3、升级过程 4、会话重用 5、安全和账户管理 6、资源管理 7、表加密管理 8、InnoDB增强功能 9、字符集支持 10、增强JSON功能 11、数据类型的支持 12、查询的优化 13、公用…

SQL进阶技巧:如何计算块熵?

目录 0 信息量定义 信息熵 1 块熵定义 2 问题描述 ​3 数据准备 4 问题分析 5 小结 想要进一步了解SQL这门艺术语言的&#xff0c;可以订阅我的专栏数字化建设通关指南&#xff0c;将在该专栏进行详细解析。专栏 原价99&#xff0c;现在活动价39.9&#xff0c;按照阶梯式…

240927-各种卷积最清晰易懂blender动画展示

240927-一些常用卷积清晰易懂的blender动画展示&#xff08;Conv、GConv、DWConv、1*1Conv、Shuffle&#xff09; 在几个月前&#xff0c;写过一篇关于卷积过程中输入图像维度变化的博客240627_关于CNN中图像维度变化问题_图像的尺寸为什么又四个维度-CSDN博客&#xff0c;但是…

新手教学系列——在MySQL分表中批量调整表结构的实践与优化

在当今的互联网业务中,随着数据量的不断增长,单个数据库的处理能力往往难以满足高并发、高性能的要求。因此,分库分表已经成为解决数据库扩展性问题的主流方案之一。然而,分表虽然能有效提升数据库的读写性能,但也带来了一个新的挑战:当业务需求变化时,需要对大量分表进…

【DAY20240927】经典深度学习模型对比:LeNet5、CNN、ResNet20、AlexNet、TextCNN 与 VGG-11

文章目录 前言一、LeNet5二、CNN三、AlexNet四、ResNet20五、TextCNN六、VGG-11 前言 We leverage 6 models to deal with the data, i.e., LeNet5 (LeNet) (LeCun et al. 1989), a synthetic CNN network (CNN), ResNet20 (ResNet) (He et al.2016), AlexNet (Krizhevsky, Su…

矿山、石场重型机械设备数据集-挖掘机-自卸卡车-轮式装载机

描述 本项目旨在创建一个高效的计算机或机器视觉模型&#xff0c;用于在建筑工地检测不同种类的施工设备&#xff0c;我们从三个类别开始&#xff1a;挖掘机、卡车和轮式装载机。 数据集的理学硕士提供。 原始图像&#xff08;v1&#xff09;包含&#xff1a; 1,532个标注…

Git的安装 + 基本操作

一、Git初识 1. 提出问题 ​ 不知道你在工作或学习中&#xff0c;有没有遇到这样的情况&#xff1a;我们在创建并编写各种文档时&#xff0c;为了防止文档丢失&#xff0c;更改失误&#xff0c;失误后能恢复到原来的版本&#xff0c;不得不复制出一个一个的副本&#xff0c;保…

中东电商:下一个蓝海,Google Cloud和Google Maps助力企业乘风破浪

随着“一带一路”倡议的深入推进&#xff0c;中东地区已成为全球瞩目的新兴市场。庞大的年轻消费群体、丰富的石油资源以及不断完善的数字基础设施&#xff0c;为中国企业提供了前所未有的发展机遇。中东电商市场&#xff0c;无疑是下一个蓝海&#xff01; 中东电商市场&#x…

学日语必备神器!这4款翻译APP你用过吗?

小伙伴们&#xff0c;你们有没有在日常生活或工作中遇到过需要翻译日语的场景呢&#xff1f;无论是阅读日本原著、工作文档还是和日本小伙伴交流&#xff0c;一个好的翻译工具绝对能成为你的贴心小助手&#xff1b;今天&#xff0c;我就来跟大家分享几款我个人非常喜欢的日语翻…