uitls.js
2.1 KB
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import service from "@/common/service.js"
/**
* @description: 版本判断以及更新逻辑
* @param {Object} obj
* @author: xuhao
*/
export async function update() {
await inspectApk()
await inspectWgt()
}
// 检查是否有apk包更新
function inspectApk() {
return new Promise((req, err) => {
let version = plus.runtime.version
// let version = '1.0.0'
console.log('version', version)
service.P_post('/version/index', {
client: uni.getSystemInfoSync().platform,
version: version
}).then(res => {
if(res.msg.version) {
uni.navigateTo({
url: '/pages/update/update'
})
err()
} else {
req()
}
})
})
}
// 检查是否有wgt包更新
function inspectWgt() {
return new Promise((req, err) => {
plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => {
let version = widgetInfo.version
console.log('version', version)
service.P_post('/version/index', {
client: uni.getSystemInfoSync().platform,
version: version
}).then(res => {
if(res.msg.version) {
wgtUpdate(res.msg.url)
err()
} else {
req()
}
})
})
})
}
/**
* 热更新逻辑
*/
function wgtUpdate(url) {
// 检查是否正在更新
if(uni.getStorageSync('updatingInProgress')){
return
}
uni.setStorageSync('updatingInProgress', true)
let urlSystem = uni.getStorageSync('url')
const downloadTask = uni.downloadFile({
url: urlSystem + '/app/renew/download?filename=' + url,
success: (downloadResult) => {
if (downloadResult.statusCode === 200) {
plus.runtime.install(downloadResult.tempFilePath, {
force: true
}, function() {
console.log('install success...');
plus.runtime.restart();
}, function(e) {
console.error('install fail...', e);
},);
}
},
complete: () => {
uni.removeStorageSync('updatingInProgress')
}
});
var showLoading = plus.nativeUI.showWaiting("正在更新", {
back: "none"
});
downloadTask.onProgressUpdate((res) => {
showLoading.setTitle("正在更新" + res.progress + "% ");
if (res.progress == 100) {
plus.nativeUI.closeWaiting();
}
})
}