96 lines
2.8 KiB
JavaScript
96 lines
2.8 KiB
JavaScript
const device = uni.getSystemInfoSync()
|
||
|
||
/**
|
||
* @author Ankkaya
|
||
* @description 检查更新
|
||
* @param {String} newVersion - 最新版本
|
||
* @returns {Type}
|
||
*/
|
||
function checkUpdate(newVersion) {
|
||
plus.runtime.getProperty(plus.runtime.appid, (wgtInfo) => {
|
||
if (String(device.platform).toLowerCase() === 'android') {
|
||
console.log(wgtInfo)
|
||
if (wgtInfo.version !== newVersion) {
|
||
uni.showModal({
|
||
title: '温馨提示',
|
||
content: '发现新版本APP,您是否要升级体验?',
|
||
cancelText: '暂时忽略',
|
||
confirmText: '立即升级',
|
||
success: (action) => {
|
||
if (action.confirm) {
|
||
// 下载 app
|
||
downLoadApp()
|
||
} else {
|
||
// 忽略
|
||
}
|
||
},
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
|
||
function downLoadApp() {
|
||
let percent = 0
|
||
let downnUrl = import.meta.env.MALL_APP_DOWNLOAD_PATH
|
||
let dtask = plus.downloader.createDownload(downnUrl, {}, (d, status) => {
|
||
if (status == 200) {
|
||
let path = d.filename
|
||
plus.runtime.install(path, {}, () => {})
|
||
} else {
|
||
uni.showToast({
|
||
title: '下载失败',
|
||
icon: 'none',
|
||
})
|
||
}
|
||
})
|
||
|
||
try {
|
||
dtask.start()
|
||
let showLoading = plus.nativeUI.showWaiting('正在下载...')
|
||
dtask.addEventListener('statechanged', (download, status) => {
|
||
switch (download.state) {
|
||
case 1:
|
||
showLoading.setTitle('正在下载...')
|
||
break
|
||
case 2:
|
||
showLoading.setTitle('已连接到服务器')
|
||
break
|
||
case 3:
|
||
percent = parseInt((parseFloat(download.downloadedSize) / parseFloat(download.totalSize)) * 100)
|
||
showLoading.setTitle(`正在下载` + percent + '%')
|
||
break
|
||
case 4:
|
||
plus.nativeUI.closeWaiting()
|
||
break
|
||
}
|
||
})
|
||
} catch (e) {
|
||
plus.nativeUI.closeWaiting()
|
||
uni.showToast({
|
||
title: '更新失败!',
|
||
icon: 'none',
|
||
})
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @author Ankkaya
|
||
* @description 本地版本
|
||
* @param {Type} -
|
||
* @returns {Type}
|
||
*/
|
||
function getVersion() {
|
||
let version = ''
|
||
plus.runtime.getProperty(plus.runtime.appid, (wgtInfo) => {
|
||
version = wgtInfo.version
|
||
})
|
||
return version
|
||
}
|
||
|
||
export default {
|
||
checkUpdate,
|
||
downLoadApp,
|
||
getVersion,
|
||
}
|