uniapp版本升级记录(整包升级,wgt资源升级)

本文章是基于升级中心 uni-upgrade-center - Admin 升级中心 uni-upgrade-center - App两个插件完成的,特此感谢!
下面记录一下在使用插件时的一些注意点:
升级中心分为Admin和App两部分,先创建Admin项目,App部分是直接导入到自己的前端项目中就行
在这里插入图片描述

1 添加检查提示
在check-update.js文件里面加入自己的逻辑

2更换提示框背景图片
不满意原来的背景图片->将bg_top.png换了就行,或者修改upgrade-popup.vue里面的样式

3在app.vue里面引入import appUpdate from "@/uni_modules/uni-upgrade-center-app/utils/check-update.js"且在onLaunch中调用

onLaunch:function(){
	// #ifdef APP-PLUS 
		// 版本检查更新
		appUpdate();
	// #endif
	console.log('执行了onLaunch')
},

这样就可以实现进入app就会检查版本,还可以在设置页面引入且放一个手动检查更新版本的按钮进行自行版本更新:

<!-- #ifdef APP-PLUS -->
<view @click="getVersion()">
	<text>检查更新</text>
	<text>{{appVersion}}</text>
</view>
<!-- #endif -->
import appUpdate from "@/uni_modules/uni-upgrade-center-app/utils/check-update.js"
data() {
	return {
		appVersion:"",// 版本号
	}
},
onLoad() {
	this.appVersion=plus.runtime.version; // 获取当前版本号
},
methods: {
	// 获取APP版本,是否进行版本更新
	getVersion() {
		// #ifdef APP-PLUS
		appUpdate(); // 调用方法检查版本更新
		// #endif
	},
}

4在手机基座上运行时获取到的版本号和appid是hbuilder和hbuilder的版本需要在文件里面手动设置
5在更新版本时版本号填的是x.x.x.x的那个对应的获取的是plus.runtime.version
xxx的那个是plus.runtime.versionCode注意不要填反了,否则将会出现更新后也会再次弹窗提示更新应用的界面
在这里插入图片描述
在这里插入图片描述
关于admin管理后台的搭建,大家可以看一下这篇文章==>手把手带你使用uni-admin搭建后台管理系统带你使用uni-upgrade-center搭建APP更新系统(升级中心+应用升级)
在搭建后台升级中心报[uni-admin]: fc_function_not_found uni-admin时,可以看一下云函数是否上传,或者使用本地云函数运行,或者删除项目重新走一遍教程
在这里插入图片描述

### 下载最新版 UniApp 更新的方法 对于更新,通常涉及 APK 文件的下载与安装。当服务器端有新版本时,客户端会接收到通知并引导用户前往应用商店或指定页面下载新版 APK 安装文件[^1]。 对于热更新,则主要依赖于 WGT 的形式来部署前端资源的变化,在无需重新打个应用程序的情况下完成特定部分的功能迭代或者修复漏洞等问题。这种方式下,开发者可以通过 uni-app 提供的相关 API 实现在线加载最新的 HBuilderX 工程编译产物至目标设备上运行环境之中[^2]。 #### 更新 (APK) 为了实现 APK 的下载: 1. 构建一个 HTTP 请求到服务端接口以获取当前可用最高版本号及其对应的下载 URL 地址; 2. 对比本地存储中的现有版本信息判断是否需要升级; 3. 如果确实存在更高级别的发行版,则调用 `plus.runtime.openURL()` 方法打开默认浏览器访问该链接地址从而触发下载流程。 ```javascript // 假设已知远程API返回的数据结构如下所示 const response = { version: '2.0.0', url: 'https://example.com/app-release.apk' }; if (+response.version.replace(/\./g, '') > +currentVersion.replace(/\./g, '')) { // currentVersion 是本地保存的应用程序版本字符串 plus.nativeUI.confirm('发现新版本,立即更新?', function(e){ if (e.index === 0) { plus.runtime.openURL(response.url); } },'提示'); } ``` #### 热更新 (WGT) 而针对 WGT 类型的增量式更新方案来说,具体步骤可能略有不同: - 应先向云端请求检查是否有待处理的任务队列等待被执行; - 若确认有必要实施变更措施的话就利用内置函数 `plus.update.downloadPackage` 来异步拉取差异补丁压缩- 成功接收之后再通过 `plus.update.unpackPackage` 解压覆盖原有文件夹内的对应组件即可生效。 ```javascript function checkUpdate() { var dtask = plus.downloader.createDownload( "http://update.dcloud.net.cn/uniapp/hello.wgt", {}, function(d,status){ if(status==200){ console.log("下载成功:"+d.filename); plus.io.resolveLocalFileSystemURL("_www/", function(entry){ entry.removeRecursively(function(){ plus.zip.unzip(d.filename,"_www","解压wgt"); }); }); }else{ console.error("下载失败!"); } } ); dtask.start(); } checkUpdate(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值