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