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, }