uniapp更新有两种
整包更新,即常规的整个App安装包重新下载安装。
资源热更新,只对app里面的js等前端代码进行更新,无需重新安装。
整包更新就是启动时请求后台更新接口,将本APP的版本号发送给后台,后台对比有更新就会给出更新的地址
onLaunch: function () {
//#ifdef APP-PLUS
var server = "https://www.example.com/update"; //检查更新地址
var req = { //升级检测数据
"appid": plus.runtime.appid,
"version": plus.runtime.version
};
uni.request({
url: server,
data: req,
success: (res) => {
if (res.statusCode == 200 && res.data.status === 1) {
uni.showModal({ //提醒用户更新
title: "更新提示",
content: res.data.note,
success: (res) => {
if (res.confirm) {
plus.runtime.openURL(res.data.url);
}
}
})
}
}
})
//#endif
}后台if (plus.os.name=="Android") {
appurl = "market://details?id=io.dcloud.hellouniapp"; //这个是通用应用市场,如果想指定某个应用商店,需要单独查这个应用商店的包名或scheme及参数 ,或者直接apk的下载地址
}
else{
appurl = "itms-apps://itunes.apple.com/cn/app/hello-uni-app/id1117078253";
}如果是wgt更新制作wgt包,hbuilder发行-》原生app-制作应用wgt包,然后将wgt包放在自己的服务器后,把访问url地址记下来

app端调用安装wgt包
uni.showModal({
title: "系统提示",
content: `当前版本号为(当前版本号),邀您更新版本(最新版本号)`,
success: (res) => {
//用户确认更新
if (res.confirm) {
//使用下载api(uni.downloadFile)
let uploadTask = uni.downloadFile({
url: 'wgt包下载地址',
success: (downloadResult) => {
//使用安装wgtapi(plus.runtime.install)
plus.runtime.install(
downloadResult.tempFilePath, {
force: true
},
function () {
uni.showModal({
title: '系统提示',
content: '新版本已经更新完成,需要重启应用',
showCancel: false,
//用户点击确认重启
success: function (
res) {
if (res
.confirm) {
调用重启api(plus.runtime
.restart)
plus.runtime
.restart();
} else if (res
.cancel) {
console
.log(
'用户点击取消'
);
}
}
});
}
)
}
});
//在这里监听用户下载进度
uploadTask.onProgressUpdate((res) => {
this.pro = res.progress;
console.log(this.pro);
if (this.pro == 100) {
this.isDown = false;
}
})
}
}
}); 网友回复
如何破解绕开seedance2.0真人照片生成视频 限制?
python有哪些算法可以将视频中的每个帧图片去除指定区域水印合成新的视频?
iphone的激光雷达数据能否实时传输到three三维空间中?
豆包sora等ai视频生成大模型生成的视频水印如何去除?
python如何实现在电脑上拨号打电话给手机?
具身机器人与人形机器人区别?
nodejs如何将一个完整的js代码文件切割成不同的部分混淆后动态加载进入html运行?
为啥windows.onerror捕获js错误是这样的{"message":"Script error.","source":"","lineno":0,"colno":0,"stack":null,
2026年ai将全面接管编程?
WebMCP是干啥的?


