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;
}
})
}
}
}); 网友回复
有没有不依赖embedding向量的RAG技术?
有没有支持实时打断语音通话并后台帮你执行任何的ai模型?
开源ai大模型文件格式GGUF、MLX、Safetensors、 ONNX 有什么区别?
出海挣钱支付收款PayPal、Wise 、PingPong、Stripe如何选择?
如何实现类似google的图片隐形水印添加和识别技术?
linux上如何运行任意windows程序?
ai能写出比黑客还厉害的零日漏洞等攻击工具攻击任意软件系统工程?
js如何获取浏览器的音频上下文指纹、Canvas指纹、WebGL渲染特征?
为啥ai开始抛弃markdown文本,重新偏好html文本了?
网站有没有办法鉴别访问请求是由ai操控chrome-devtools-mcp发出的?


