From 277d6652893fcc10fb6827b62ef16fe2910a525c Mon Sep 17 00:00:00 2001
From: zhouwenxuan <1175765986@qq.com>
Date: Fri, 15 Dec 2023 16:58:25 +0800
Subject: [PATCH] 强制更新功能
---
pages/index/index.vue | 89 ++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 85 insertions(+), 4 deletions(-)
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 2b9226a..702cfa6 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -17,15 +17,16 @@
<u-form-item style="margin-top: 10px;width: 75%;">
<u-button :loading="isLogining" type="primary" style="width: 100%;" @click="Login">登录</u-button>
</u-form-item>
- <view style="color: white;margin-top: 150px;">技术支持:中国科学院</view>
+ <view style="color: white;margin-top: 150px;">技术支持:技术保障部</view>
</u-form>
</view>
</view>
</template>
<script>
- import {login} from '../../api/index.js';
+ import {login,getLastApp} from '../../api/index.js';
import store from '@/store/index.js'
+ import VUE_APP_BASE_URL from '../../common/constant.js'
const jpushModule = uni.requireNativePlugin('JG-JPush')
export default {
data() {
@@ -39,7 +40,7 @@
//极光推送
connectStatus: '未连接',
registrationID: '未获得',
- isLogining: false
+ isLogining: false,
}
},
onShow() {
@@ -71,6 +72,7 @@
},
onLoad() {
this.connect()
+ this.getMaxVersion()
},
methods: {
Login(){
@@ -146,7 +148,86 @@
uni.setStorageSync('registrationID', registerID);
console.log("iddd",uni.getStorageSync('registrationID'))
})
- }
+ },
+ // 获取最新版本
+ 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 = uni.getStorageSync("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,
+ });
+ }
+ },
+ });
+ // downloadTask.onProgressUpdate((res) => {
+ // // _this.startDown = true;
+ // // _this.calcPro(res.progress);
+ // // console.log('下载进度' + res.progress);
+ // // console.log('已经下载的数据长度' + res.totalBytesWritten);
+ // // console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
+ // // 测试条件,取消下载任务。
+ // // if (res.progress > 50) {
+ // // downloadTask.abort();
+ // // }
+ // });
+ }
+ },
+ });
+ }
}
}
</script>
--
Gitblit v1.9.2