UNI-APP APP升级(整包升级与热升级)
1.服务端数据格式
{
“android”:{
“updateType”:0, ??
????”appVersion”:”1.0.0″,
????”wgtUdateUrl”:”http://10.168.10.1/app.wgt”,
“downloadUrl”:”https://www.lanzous.com/game”
},
“ios”:{
“updateType”:0, ??
????”appVersion”:”1.3.0″, ?
????”wgtUdateUrl”:”http://106.13.40.12/__UNI__1EA9FB7.wgt”,
“downloadUrl”:”https://www.lanzous.com/game-ios”
}
}
参数名称:
1.updateType升级类型(0热升级,1整包升级)
2.appVersion ???APP版本
3.wgtUdateUrl ?wgt(热升级资源包)下载地址
4.downloadUrl整包升级下载地址
注意:
APP版本号均要大于前一个版本号
肯定大于上一个版本(部分手机无法降级安装安装包)
wgt资源包生成: ???
2.用户端(APP端)
//APP升级
export function appUdate(appInfo) {
let appVersion = appInfo.version.replace(/[.]/g, “”) //当前版本号
let appName = appInfo.name //app名字
let phoneOS = uni.getSystemInfoSync().platform
uni.request({
url: ‘http://***********’,
//url: ”,
method: ‘GET’,
success: res => {
let androidUdateFile = res.data.android //安卓升级文件
let iosUdateFile = res.data.ios //ios升级文件
// let updateFile = {}
let updateFile = phoneOS == “android” ? androidUdateFile : iosUdateFile
console.log(updateFile)
// if (phoneOS === “android”) {
// updateFile = androidUdateFile
// } else {
// updateFile = iosUdateFile
// }
if (updateFile.appVersion.replace(/[.]/g, “”) > appVersion) {
if (updateFile.updateType) {
packageDownload(updateFile) //整包升级
} else {
wgtDownload(updateFile) //wgt升级
}
}
},
fail: () => {
},
});
}
//热升级
function wgtDownload(fileInfo) {
const downloadTask = uni.downloadFile({
url: fileInfo.wgtUdateUrl,
success: (downloadResult) => {
if (downloadResult.statusCode === 200) {
uni.showModal({
title: “提醒”,
content: ‘软件升级完成,能否重启应用?’,
success: res => {
if (res.confirm) {
(downloadResult.tempFilePath, {
force: false
}, function() {
console.log(‘install success…’);
plus.runtime.restart();
}, function(e) {
console.error(‘install fail…’);
});
}
}
});
}
}
});
downloadTask.onProgressUpdate((res) => {
console.log(‘下载进度’ + res.progress);
})
}
//整包升级
function packageDownload(fileInfo) {
uni.showModal({
title: “提醒”,
content: `测到有最新版本${fileInfo.appVersion},能否确认升级?`,
success: function(res) {
if (res.confirm) {
plus.runtime.openURL(fileInfo.downloadUrl) //整包下载
}
}
});
}
一般封装成一个js import引入就行
本人在App.vue文件
onLaunch里面执行以下代码
plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
appUdate(wgtinfo)
})
需要在哪升级就放在哪里
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » UNI-APP APP升级(整包升级与热升级)