From a8dd5046422b9450548ea2eb5cce95e95e4c6820 Mon Sep 17 00:00:00 2001 From: zhouwenxuan <1175765986@qq.com> Date: 星期一, 18 十二月 2023 14:48:18 +0800 Subject: [PATCH] 强制更新功能 --- App.vue | 96 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 89 insertions(+), 7 deletions(-) diff --git a/App.vue b/App.vue index 2216b6d..a7e293c 100644 --- a/App.vue +++ b/App.vue @@ -1,15 +1,16 @@ <script> + import {getLastApp} from 'api/index.js'; + import VUE_APP_BASE_URL from 'common/constant.js' var jpushModule = uni.requireNativePlugin("JG-JPush") export default { + data() { + return { + version: '' + } + }, onLaunch: function() { - //#ifdef APP-PLUS - plus.runtime.getProperty(plus.runtime.appid, wgtinfo => { - uni.setStorageSync('version', wgtinfo.version) - console.log("version",wgtinfo.version) - }) - //#endif - + console.log('App Launch',jpushModule) jpushModule.initJPushService(); jpushModule.setLoggerEnable(true); @@ -112,11 +113,92 @@ }, onShow: function() { + plus.runtime.getProperty(plus.runtime.appid, wgtinfo => { + this.version = wgtinfo.version; + if(this.version){ + this.getMaxVersion(); + } + }) + console.log('App Show') + + }, onHide: function() { // jpushModule.initJPushService(); console.log('App Hide') + }, + methods: { + // 获取最新版本 + getMaxVersion() { + uni.getSystemInfo({ + success: (res) => { + getLastApp().then(res => { + if (res.code === 100) { + console.log(res,'res'); + this.updateVersion(res.data); + } + }) + }, + }); + }, + + // 版本对比 + updateVersion(data) { + const lastVersion = data.version; //最新版本 + const curVersion = this.version; // 当前版本 + console.log("lastVersion",lastVersion) + console.log("curVersion",curVersion) + if (curVersion && lastVersion) { + const curNum = parseInt(curVersion.replace(/[,|.]/g, '')) + const lastNum = parseInt(lastVersion.replace(/[,|.]/g, '')) + + if (lastNum > curNum) { + this.showFly(data.attachmentInfo.fileUrl,lastVersion); + + } + } + }, + // 版本下载 升级 + showFly(url,lastVersion) { + console.log("url",url) + uni.showModal({ + title: "更新提示", + content: `发现新版本${lastVersion},立即升级!`, + showCancel: false, // 如果是强制更新就不显示取消按钮 + success: (e) => { + if (e.confirm) { + uni.showLoading({ + title: "更新中……", + }); + const downloadTask = uni.downloadFile({ + url: VUE_APP_BASE_URL + url, // 这个是最新版本apk包的地址 + success: (res) => { + uni.hideLoading(); + if (res.statusCode === 200) { + console.log("url",VUE_APP_BASE_URL + url) + plus.runtime.install(res.tempFilePath, { force: true }, _res => { + uni.showToast({ + title: "更新成功,重启中", + duration: 1600, + }); + plus.runtime.restart(); + uni.hideToast(); + } + ); + } else { + uni.showToast({ + title: "下载失败!", + icon: "none", + duration: 800, + }); + } + }, + }); + } + }, + }); + } } } -- Gitblit v1.9.2