zhouwenxuan
2023-12-18 a8dd5046422b9450548ea2eb5cce95e95e4c6820
App.vue
@@ -1,14 +1,15 @@
<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();
@@ -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,
                          });
                        }
                      },
                    });
                  }
                },
              });
            }
         }
      }