#
whycq
2023-10-21 3ad8a0417cf6e905dd1edd05e6b85e7cde3360c2
Monitor-APP/App.vue
@@ -5,9 +5,172 @@
      },
      onShow: function() {
         console.log('App Show')
         const BaseIP = uni.getStorageSync('BaseIp');
         const BasePort = uni.getStorageSync('BasePort');
         this.baseUrl = 'http://' + BaseIP + ':' + BasePort + '/jfwms'
         setInterval(()=>{
            this.getVersion()
         },3000)
      },
      onHide: function() {
         console.log('App Hide')
      },
      data() {
         return {
            version: '',
            baseUrl: '',
            filename: '',
            downloadFlag: false
         }
      },
      methods: {
         //检测当前平台,如果是安卓则启动安卓更新
         getVersion() {
            let that = this;
            if (this.downloadFlag) {
               return
            }
            uni.getSystemInfo({
               success: (res) => {
                  if (res.platform == "android") {
                     that.AndroidCheckUpdate();
                  }
               }
            })
         },
         // 获取当前版本号
         AndroidCheckUpdate() {
            let that = this;
            plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
               that.version = wgtinfo.version //客户端版本号
            })
            setTimeout(()=>{
               that.getUpdateVersion()
            },100)
         },
         // 校验版本
         getUpdateVersion() {
            let that = this
            let type = 1
            if (that.baseUrl == 'http://undefined:undefined/undefined') {
               return
            }
            let url = that.baseUrl + '/appVersion/checkUpdate/' + that.version + '/' + type
            uni.request({
               url: url,
               method: 'GET',
               success(res) {
                  var res = res.data
                  console.log(res);
                  if (res.code === 200 ){
                     that.filename = res.data.path
                     // 有新版本直接下载
                     that.downWgt()
                  }
               }
            })
         },
         dialogConfirm() {
            this.$refs.upVersion.close()
            this.downWgt()
         },
         dialogClose() {
            this.$refs.upVersion.close()
         },
         downWgt() {
            let that = this;
            this.downloadFlag = true
            const downloadUrl = that.baseUrl + "/appVersion/downloadApp/" + that.filename
            uni.showLoading({
               title: '更新中……'
            })
            const downloadTask = uni.downloadFile({
               url: downloadUrl,
               timeout: 1000 * 30,
               success(downloadResult) {
                     uni.hideLoading();
                     if (downloadResult.statusCode == 200) {
                        plus.runtime.install( //安装
                           downloadResult.tempFilePath, {
                              force: true
                           },
                           function(res) {
                              utils.showToast('更新成功,重启中');
                              plus.runtime.restart();
                           }
                        );
                     }
               }
            })
            // 下载进度
            downloadTask.onProgressUpdate(res => {
               that.downloadNum = res.progress
               console.log('下载进度' + that.downloadNum);
            });
         },
         downWgt2() {
            let that = this;
            this.downloadFlag = true
            const downloadUrl = that.baseUrl + "/appVersion/downloadApp/" + that.filename
            uni.showLoading({
               title: '更新中……'
            })
            const downloadTask = uni.downloadFile({ //执行下载
               url: downloadUrl, //下载地址
               timeout: 1000 * 30, //30秒超时时间
               success: downloadResult => { //下载成功
                  console.log(downloadResult);
                  that.showdownLine = false
                  uni.hideLoading();
                  if (downloadResult.statusCode == 200) {
                     console.log();
                     uni.showModal({
                        title: '',
                        content: '更新成功,确定现在重启吗?',
                        confirmText: '重启',
                        confirmColor: '#EE8F57',
                        success: function(res) {
                           if (res.confirm == true) {
                              plus.runtime.install( //安装
                                 downloadResult.tempFilePath, {
                                    force: true
                                 },
                                 function(res) {
                                    utils.showToast('更新成功,重启中');
                                    plus.runtime.restart();
                                 }
                              );
                           }
                        }
                     });
                  } else {
                     uni.hideLoading();
                     that.showdownLine = false
                     uni.showToast({
                        title:'请先上传安装包',
                        icon: 'error'
                     })
                  }
               },
               fail: err => {
                  uni.hideLoading();
                  that.showdownLine = false
                  that.$u.toast(downloadResult.errMsg)
               },
               complete: com => {
                  console.log(com)
               }
            });
            // 下载进度
            downloadTask.onProgressUpdate(res => {
               that.downloadNum = res.progress
               console.log('下载进度' + that.downloadNum);
            });
         }
      }
   }
</script>