From a8dd5046422b9450548ea2eb5cce95e95e4c6820 Mon Sep 17 00:00:00 2001
From: zhouwenxuan <1175765986@qq.com>
Date: Mon, 18 Dec 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