From 277d6652893fcc10fb6827b62ef16fe2910a525c Mon Sep 17 00:00:00 2001 From: zhouwenxuan <1175765986@qq.com> Date: 星期五, 15 十二月 2023 16:58:25 +0800 Subject: [PATCH] 强制更新功能 --- pages/index/index.vue | 138 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 126 insertions(+), 12 deletions(-) diff --git a/pages/index/index.vue b/pages/index/index.vue index 8946186..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,15 +40,39 @@ //极光推送 connectStatus: '未连接', registrationID: '未获得', - isLogining: false + isLogining: false, } }, onShow() { - uni.clearStorageSync(); - uni.clearStorage(); + console.log("数据",uni.getStorageSync('name')) + if(uni.getStorageSync('name') && uni.getStorageSync('pwd')){ + // this.form.name = uni.getStorageSync('name'); + // this.form.pwd = uni.getStorageSync('pwd'); + if(uni.getStorageSync('roleName') == '工作人员'){ + this.$store.commit('setRoleId', 'user_other'); + uni.switchTab({ + url: '/pages/tabBar/notice/notice' + }); + }else if (uni.getStorageSync('roleName') == '管理员'){ + this.$store.commit('setRoleId', ''); + uni.showToast({ + icon: "none", + title: '管理员请使用平台登录' + }); + }else{ + this.$store.commit('setRoleId', 'user_leader'); + uni.switchTab({ + url: '/pages/tabBar/firstPage/firstPage' + }); + } + }else{ + uni.clearStorageSync(); + uni.clearStorage(); + } }, onLoad() { - // this.connect() + this.connect() + this.getMaxVersion() }, methods: { Login(){ @@ -57,15 +82,17 @@ this.isLogining = false; //登录成功后 //设置别名 - // jpushModule.setAlias({ - // 'alias': this.phone, - // 'sequence': 1 - // }) + jpushModule.setAlias({ + 'alias': this.phone, + 'sequence': 1 + }) + uni.setStorageSync("name", this.form.name); + uni.setStorageSync("pwd", this.form.pwd); uni.setStorageSync("tk", res.data.tk); uni.setStorageSync("uid",res.data.uid); uni.setStorageSync('user', res.data); + uni.setStorageSync('unittype',res.data.unittype); uni.setStorageSync('roleName', res.data.role.roleName); - console.log("登录--------",res.data.tk) if(res.data.role.roleName == '工作人员'){ this.$store.commit('setRoleId', 'user_other'); uni.switchTab({ @@ -83,6 +110,14 @@ url: '/pages/tabBar/firstPage/firstPage' }); } + }else{ + uni.showToast({ + icon: "none", + title: res.msg + }); + this.form.name = ''; + this.form.pwd = ''; + this.isLogining = false; } }).catch(err=>{ this.form.name = ''; @@ -113,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