记录一次uniapp实现APP自动升级

news2024/9/20 20:22:40

描述

app的版本管理和升级,是一个不可或缺的功能,而uniapp则是提供了一整套的流程,由于官方文档过于复杂,而且写的云里雾里的,所以个人记录一次我的操作,直到配置成功。

总体

一共分为2个部分,官方提供的两个插件(uni-upgrade-center - Adminuni-upgrade-center - App)配套使用,本文采用最简单粗暴的方式来实现。

前端设置

1 安装前端插件

插件uni-upgrade-center - App,将插件导入到你的项目里面。
在这里插入图片描述

2 添加路径

pages.json文件,添加一个更新页面(官方已提供)

{
	"path": "uni_modules/uni-upgrade-center-app/pages/upgrade-popup",
	"style": {
		"disableScroll": true,
		"app-plus": {
			"backgroundColorTop": "transparent",
			"background": "transparent",
			"titleNView": false,
			"scrollIndicator": false,
			"popGesture": "none",
			"animationType": "fade-in",
			"animationDuration": 200
		}
	}
}

3 添加更新代码

将更新的代码,放在你要展示的位置

import checkUpdate from '@/uni_modules/uni-upgrade-center-app/utils/check-update.js'

例如,我写在App.vue里面,项目一打开就检测
在这里插入图片描述

后端设置

后端个人建议不要使用uni-upgrade-center - Admin,直接新建一个项目使用uni-admin这里面内置了升级中心,因为后续还有统计,还要用到uni-admin,所以我们直接用这个更简单

在这里插入图片描述
步骤

  • 新建uni-admin 项目
  • 使用新的云开发空间,不和app共用
  • 发布的时候直接上传到云托管

uni-admin项目基本没有什么改动,直接下载后上传就可以使用
在这里插入图片描述

后端项目就搭建好了,进入后台,将你的APP添加进来
在这里插入图片描述

注意

1 云函数调整(必须)

因为前后端是2个项目,所以我们需要修改更新的云函数,将服务空间指向uni-admin,才能调用更新云函数,参数在服务空间都可以看见

const myCloud = uniCloud.init({
  provider: 'aliyun',
  spaceId: 'mp-xxxxxxxxxxxxxxxxxxx',
  clientSecret: 'xxxxxxxxx'
});
myCloud.callFunction({
	name: 'uni-upgrade-center',
	data,
	success: (e) => {
		console.log("e: ", e);
		resolve(e)
	},
	fail: (error) => {
		reject(error)
	}
})

在这里插入图片描述

2 发布wgt包问题

打包前请务必将 manifest.json 中的版本名称修改为更高版本
在这里插入图片描述

3 发布新版本

在admin后台直接发布即可,app端就可以检查
在这里插入图片描述

4 如何测试

必须要打包apk安装到自己手机才行,我之前使用web端无法检查,以及使用hbuild基座APP也无法检查,

在这里插入图片描述

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

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

相关文章

scanf与printf函数的用法

前言: 学习c语言编程,必不可少的操作就是键盘输入与屏幕输出。今天我想讲讲自己对scanf与printf使用的看法 一、scanf与printf: 1.scanf()函数: int scanf ( const char * format, ... ); 函数的功能:从标准输入中…

契约锁亮相华为2023中国合作伙伴大会,共谱华为云软件生态新篇章

5月8日-9日,以“因聚而生 众志有为”为主题的“华为中国合作伙伴大会2023”在深圳举行。契约锁作为华为云优秀软件伙伴,受邀参会并在“聚数字化先行者,谱软件生态新乐章”分论坛开展“让数字可信,打通数字化最后一公里”数字化实践…

Google Play 政策更新重点回顾 (下) | 2023 年 4 月

Google Play 和您一样,始终坚持为用户提供更优质的产品、更流畅的体验。为持续打造值得信赖的优质应用平台,我们也在不断进行政策更新。在上一篇文章中与您回顾了 2023 年 4 月 Google Play 政策的更新要点,这篇文章我们将为您带来重点政策解…

golang汇编之常量和全局变量(三)

常量 Go汇编语言中常量以$美元符号为前缀。常量的类型有整数常量、浮点数常量、字符常量和字符串常量等几种类型。以下是几种类型常量的例子: $1 // 十进制 $0xf4f8fcff // 十六进制 $1.5 // 浮点数 $a // 字符 $"abcd" …

【加解密篇】Passware Kit Forensic暴力美学-已知部分密码自定义解密详细参数设置

【加解密篇】Passware Kit Forensic暴力美学-已知部分密码自定义解密详细参数设置 都说"自制武器不一定是最强的,但最强的武器一定是自制的",对于取证工具也是一样,虽然默认配置足够强,但如果我们能根据实时情景自定义…

arduino 导入 Brain 库

一、引言 最近在做一个可以用脑电波控制的arduino小车,需要用到Brain这个库,而且需要自己导入才能使用。之前试了很多方法,导入成功了,过了几个月又忘记怎么导入了,今天想起来记录一下,好记性不如烂笔头。 …

LNK2019 无法解析的外部符号,一种新的思路

LNK2019 无法解析的外部符号,一种新的思路 一般来说,这种问题的原因有如下几点: 函数只有声明没有实现如果是其它库的函数,可能没有链接lib文件如果函数是封装在dll中的,可能没有导出如果是模板函数或模板类&#xf…

初始MyBatis,w字带你解MyBatis

一.什么是mybatis mybatis的概念 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。1、Mybatis是一个半ORM(对象关系映射)框架,底层封装了JDBC,是程序员在开发时只需要关注SQL语句本身&#…

U-boot顶层Makefile文件分析(一)

在阅读 uboot 源码之前,肯定是要先看一下顶层 Makefile,分析 gcc 版本代码的时候一定是先从顶层 Makefile 开始的,然后再是子 Makefile,这样通过层层分析 Makefile 即可了解整个工程的组织结构。顶层 Makefile 也就是 uboot 根目录…

界面控件DevExpress WPF MessageBox组件,进一步增强用户体验!

在DevExpress WPF v22.2版本中,官方引入了一系列功能来帮助改进一个常见WPF UI元素——MessageBox的用户体验,新的MessageBox相关选项包括: 文本选择支持自定义图像支持带有计时器的按钮,可以自动关闭窗口 ThemedMessageBox类允…

OJ练习第103题——最大矩形

最大矩形 力扣链接:85. 最大矩形 题目描述 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例 输入:matrix [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”…

数据库管理-第七十四期 我的Oracle ACE之路(20230511)

数据库管理 2023-05-11 第七十四期 我的Oracle ACE之路1 差点错过2 ACE Associate3 一路走来总结 第七十四期 我的Oracle ACE之路 “终于等到你,还好我没放弃”。经过了整整4个月20天的等待,我终于收到了Oracle ACE Associate的确认邮件,成为…

『python爬虫』17. 线程池和进程池以及线程池实战(保姆级图文)

目录 1. 线程池和进程池解决的是调度问题2. 线程池3. 线程池实战:爬取西游记的标题总结 欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 1. 线程池和进程池解决的是调度问题 ⽹站的数据太多了&#xff0…

典型随机噪声激励

1.按噪声的起源分类 根据噪声的起源,分为内部噪声和外部噪声。 内部噪声:来源于系统内部的涨落运动或被检测信号,如布朗粒子受到周围液体分子的无规则碰撞即为内部噪声; 外部噪声:来自系统所处外部环境的随机涨落&…

endNote X9 导入英文文献(谷歌学术、web of science 等)

文章目录 1 导入英文文献(谷歌学术、web of science 等)2 EndNote X9 插入参考文献常见问题总结3 EndNote X9 快速上手教程(毕业论文参考文献管理器) 1 导入英文文献(谷歌学术、web of science 等) 谷歌学术…

Vite如何实现秒级依赖预构建的能力

大家都知道, Vite是一个提倡 no-bundle 的构建工具,相比于传统的 Webpack,能做到开发时的模块按需编译,而不用先打包完再加载。这一点我们在快速上手这一节已经具体地分析过了。 需要注意的是,我们所说的模块代码其实分为两部分,一部分是源代码,也就是业务代码,另一部…

线性代数——特征值与特征向量的性质

(1)设A为方阵,则A与 A T A^{T} AT有相同的特征值。 此处用到了两个关键性质,一:单位阵的转置为其本身,二:转置并不改变行列式的值。 (2): 设n阶方阵A( a i j…

汽车电子的电磁兼容性分析

随着电子技术的不断发展,新技术越来越多的应用到汽车领域,因此各个电子装置和电子控制系统必须相互适应,这就是电磁兼容性(EMC)要求。为了保证汽车可靠性,设计师必须在早期设计阶段分析电磁兼容性问题。目前市场上推出了一些电磁兼…

jdk20-虚拟线程简单了解

普通线程 JDK中的普通线程和操作系统线程是一对一关系的,存在映射关系;由操作系统进行调度,线程过多,会引起操作系统频繁调度,导致线程上下文切换太过频繁,反而会降低系统性能;线程越多&#x…

即时通讯私有化部署有哪些优势?企业在选择时需要考虑哪些因素?

即时通讯私有化部署是一种将即时通讯系统部署在企业的私有服务器上,以保护企业的信息安全和隐私。相比于使用Saas部署即时通讯应用程序,私有化部署可以更好地保护企业的机密信息,避免信息泄露的风险。 在即时通讯私有化部署中,企业…