vue打包app之版本更新问题

1、获取版本号

获取版本号


获取版本号

源码:

mounted() {

    var that = this;

      if(window.plus){

          // 在这里调用h5+ API

        that.getVersion();

      } else {// 兼容老版本的plusready事件

        document.addEventListener('plusready',function () {

            // 在这里调用h5+ API

            that.getVersion();

        },false);

      }

  },

getVersion() {

      var that = this;

      // 获取本地应用资源版本号

      plus.runtime.getProperty(plus.runtime.appid,function(inf){

        var wgtVer = inf.version;  // 当前版本号

        var ua = navigator.userAgent.toLowerCase();

        var client;

        if (/iphone|ipad|ipod/.test(ua)) {

          client = 2;

        } else if(/android/.test(ua)) {

          client = 1;

        }

        that.$axios.get(that.apiUrl.api.appDownload+'?client_category='+client+'&version_number='+wgtVer)

        .then(res=>{

          if (res.data.code==0) {

            console.log(JSON.stringify(res.data));

            if (res.data.L==null) {

              console.log('已经是最新版本');

            } else {

              if (res.data.L[0].update_status==1) {  // 弱更新

                plus.nativeUI.confirm( res.data.L[0].update_description, function(e){

                  if(e.index == 0){

                    var wgtUrl = res.data.L[0].apk_url;

                    if (client==1) {

                      plus.nativeUI.showWaiting('正在下载更新...');

                      plus.downloader.createDownload(wgtUrl, {}, function (d, status) {

                          if (status == 200) {

                              var path = d.filename;//下载apk

                              plus.runtime.install(path,{},function() {

                                plus.nativeUI.alert('更新完成',function(){ 

                                    plus.runtime.restart(); 

                                });

                              },function(e) {

                                console.log("安装wgt文件失败["+e.code+"]:"+e.message); 

                                plus.nativeUI.alert('版本更新失败:'+"["+e.code+"]:"+e.message);

                              }); // 自动安装apk文件

                          } else {

                              plus.nativeUI.alert('检测到新版本' + status);

                              that.getVersion();

                          }

                          plus.nativeUI.closeWaiting();

                      }).start();                     

                    } else {

                      window.location.href = wgtUrl;

                    }

                  }else{

                    // console.log('取消1');

                  }

                }, '检测到新版本', ['确定','取消'] );

              } else if (res.data.L[0].update_status==2) {  // 强更新

                plus.nativeUI.confirm( res.data.L[0].update_description, function(e){

                  if(e.index == 0){

                    var wgtUrl = res.data.L[0].apk_url;

                    if (client==1) {

                      plus.nativeUI.showWaiting('正在下载更新...');

                      plus.downloader.createDownload(wgtUrl, {}, function (d, status) {

                          if (status == 200) {

                              var path = d.filename;//下载apk

                              plus.runtime.install(path,{},function() {

                                plus.nativeUI.alert('更新完成',function(){ 

                                    plus.runtime.restart(); 

                                });

                              },function(e) {

                                console.log("安装wgt文件失败["+e.code+"]:"+e.message); 

                                plus.nativeUI.alert('版本更新失败:'+"["+e.code+"]:"+e.message);

                              }); // 自动安装apk文件

                          } else {

                              plus.nativeUI.alert('版本更新失败:' + status);

                              that.getVersion();

                          }

                          plus.nativeUI.closeWaiting();

                      }).start();                     

                    } else {

                      window.location.href = wgtUrl;

                    }

                  }else{

                    // console.log('取消2');

                  }

                }, '检测到新版本', ['确定'] );

              }

            }

          } else {

            plus.nativeUI.toast(res.data.msg);

          }

        })

        .catch(error=>{

          plus.nativeUI.toast('更新失败,请重试!');

        })

      });

    },

你可能感兴趣的:(vue打包app之版本更新问题)