# APP整包升级/更新
参考文档,uni-app 整包升级/更新方案 ,另外也有,uni-app 资源在线升级/热更新
注意:一定要使用plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) =>()),回调函数返回的wgtinfo对象的versionCode做判断,wgtinfo.version是版本字符串,wgtinfo.name是app应用名称
本项目是采用整包升级更新方案,如下:
/**
* app整包更新检测
*/
appUpgrade() {
//#ifndef APP-PLUS
uni.showToast({
title: '目前只支持Android版本软件更新',
icon: 'none'
})
//#endif
//#ifdef APP-PLUS
uni.getSystemInfo({
success: sysInfo => {
let platform = sysInfo.platform
plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
// app版本字符串如:1.1.0
// this.appInfo.version = wgtinfo.version
// app名称
// this.appInfo.name = wgtinfo.name
let params = {
appid: plus.runtime.appid,
// app整数版本号,如110,一定要用versionCode做判断
version: wgtinfo.versionCode,
platform: platform
}
this.$minApi.findUpgradeApp(params).then(appRes => {
if (appRes.appid) {
uni.showModal({
title: "下载更新提示",
content: appRes.note,
showCancel: false,
confirmText: '确定',
success: sucRes => {
if (sucRes.confirm) {
// openURL是打开本手机浏览器下载,不推荐使用该方法
// plus.runtime.openURL(appRes.url)
// 推荐使用如下方法,会自动下载调用系统应用商店打开apk进行安装,安装后重新打开
uni.downloadFile({
url: appRes.url,
success: downloadResult => {
if (downloadResult.statusCode === 200) {
plus.runtime.install(
downloadResult.tempFilePath, {
force: false
},
function() {
// console.log('install success...')
plus.runtime.restart()
},
function(e) {
// console.error('install fail...')
}
)
}
}
})
}
}
})
} else {
uni.showToast({
title: '已经是最新版本了。',
icon: 'none'
})
}
})
})
}
})
//#endif
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71