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;
}
})
}
}
}); 网友回复
有没有免费让ai自动帮你接管操作电脑的mcp服务?
mcp为啥用Streamable HTTP 替代 HTTP + SSE?
scratchjr有没有开源的前端html网页版本源代码?
多模态大模型能否根据ui交互视频来来模仿写出前端交互动画效果ui代码?
如何用阿里云oss+函数计算fc+事件总线EventBridge+消息队列+数据库+redis缓存打造一个高并发弹性系统?
阿里云函数计算 FC如何在海外节点搭建一个代理网络?
ai studio中gemini build的代码如何发布到github pages等免费网页托管上 ?
如何在cursor、qoder、trae中使用Claude Skills功能?
有没有不用u盘就能重装系统的开源工具?
python如何固定摄像头实时计算停车场停车位剩余数量?


