UniApp 热更新
在 UniApp 中,热更新(也称为动态更新)允许你在不重新安装应用的情况下更新应用的部分内容。这通常用于修复紧急问题或添加新功能,而无需用户通过应用商店下载新的完整版本。
·
在 UniApp 中,热更新(也称为动态更新)允许你在不重新安装应用的情况下更新应用的部分内容。这通常用于修复紧急问题或添加新功能,而无需用户通过应用商店下载新的完整版本。
一、版本配置
项目版本号在manifest.json文件中配置
注意事项
-
版本号的唯一性:
- 版本号必须是唯一的,并且每次发布的新版本其 应用版本号(
versionCode
)必须大于之前的版本。 - 例如,如果当前版本的
versionCode
是100
,下一个版本的versionCode
应该是101
或更高。
- 版本号必须是唯一的,并且每次发布的新版本其 应用版本号(
-
版本名称的语义化:
- 使用语义化版本控制可以帮助用户更好地理解应用的更新内容。
- 例如,
1.0.0
表示第一个主要版本,1.1.0
表示第一个主要版本的第一个次要更新,1.1.1
表示第一个主要版本的第一个次要更新的第一个补丁
二、版本比较
1.在App.vue中判断当前版本和接口返回的版本号是否一致
//App.vue
onShow: function() {
// #ifdef APP-PLUS
// 获取当前版本
plus.runtime.getProperty(plus.runtime.appid, function(e) {
console.log(e, '获取当前wgt版本')
// 接口获取最新版本
uni.request({
url: '换成接口地址',
method: 'GET',
header: {
'content-type': 'application/json'
},
data,
success: res => {
let nowVersion = e.versionCode //当前版本
let newVersion = res.data //最新版本
//版本不相同跳转更新页面,或弹出更新弹窗
if (nowVersion != newVersion) {
uni.navigateTo({
url: "/subPack/pages/setting/versionUpdate"
})
}
}
})
});
// #endif
},
三、更新
1."更新"页面代码 ,下载链接可放宝塔,内容是一个.wgt包
<template>
<div></div>
</template>
<script>
export default {
onShow() {
let that = this
uni.showModal({
title: '提示',
content: "检测到新版本,是否更新",
cancelText: '取消',
confirmText: '确定',
success: function(res) {
// 更新
that.upgradation()
}
})
},
methods: {
// 更新
upgradation() {
let downloadProgress = uni.downloadFile({
url: "下载链接", //内容是一个.wgt包
success: (downloadResult) => {
if (downloadResult.statusCode === 200) {
// 下载更新文件成功后进行安装
plus.runtime.install(downloadResult.tempFilePath, {
force: true // 是否强制安装, 如果将要安装应用的版本号不高于现有应用的版本号则终止安装,并返回安装失败。
},
function() {
uni.showToast({
title: '更新完毕,即将重启',
icon: 'none',
position: 'bottom'
})
plus.runtime.restart(); // 安装完成后重启应用
},
function() {
uni.showToast({
title: '更新失败',
icon: 'none',
position: 'bottom'
})
setTimeout(() => {
plus.runtime.restart(); // 重启应用
}, 1000)
})
}
}
});
// 获取下载进度
downloadProgress.onProgressUpdate((res) => {
// 下载进度百分比res.progress + "%"
console.log(res.progress)
})
}
},
};
</script>
四、生成.wgt包
uniapp 打包后找到存放文件地址--可修改文件名--将文件上传到宝塔--修改管理端的版本号即可
测试热更新:在应用启动时触发热更新检查,确保热更新功能正常工作。
更多推荐
所有评论(0)