VUe项目打包成app常用代码

  function plusReady() {
  //设置状态栏背景色
  plus.navigator.setStatusBarBackground("#0356b6");
  //返回事件处理
  plus.key.addEventListener(
    "backbutton",
    function(e) {
      var t = vue.$route.path;
      if (
        t == "/outinregister" ||
        t == "/warning" ||
        t == "/perfectinfo" ||
        t == "/recordinfo"
      )
        return plus.runtime.quit();
    },
    !1
  );

  //启动app时检测版本
  getversion();

  //从后台切换到前台钩子
  document.addEventListener(
    "resume",
    function() {
      //后台切换到前台检测版本
      getversion();
    },
    false
  );

  //获取当前版本与最新版本,执行是否更新
  function getversion() {
    //获取当前版本
    let curversion;
    plus.runtime.getProperty(plus.runtime.appid, function(inf) {
      curversion = inf.version;
      console.log("当前版本:", curversion);
      //请求最新版本
      vue.http
        .post(
          `https://www.fastmock.site/mock/9d720f2e9b94dcf2c7ee0e5f27e14bf3/mymock/getSMXQYversion`
        )
        .then(res => {
          let upversion = res.data.version;
          console.log("最新的版本:", upversion);
          //两个版本对比,是否要更新?
          if (upversion != curversion) {
            updateapp();
          }
        });
    });
  }

  //下载安装包并自动安装
  function updateapp() {
    var downloadTask = plus.downloader.createDownload("app下载外部链接", {
      timeout: 5000
    });
    downloadTask.start();
    downloadTask.addEventListener("statechanged", function(task, status) {
      console.log(JSON.stringify(status));
      if (status == "404" || status == "400") {
        mui.toast("更新失败,可能文件不存在!");
        return downloadTask.abort();
      }

      switch (task.state) {
        case 1: // 开始
          console.log("开始");
          break;
        case 2: //已连接到服务器
          console.log("已连接到服务器");
          break;
        case 3: // 已接收到数据
          // console.log('已接收到数据');
          var current = parseInt((100 * task.downloadedSize) / task.totalSize);
          vue.$Toast({
            message: `下载进度: ${current}%`,
            position: "top",
            duration: 0
          });
          break;
        case 4: // 下载完成
          vue.$Toast.clear();
          mui.toast("下载完成,请重新打开app");

          plus.runtime.install(
            task.filename,
            {},
            function() {
              //成功安装回调
              plus.runtime.quit();
            },
            function(DOMException) {
              console.log(JSON.stringify(DOMException));
              mui.toast("安装失败");
            }
          );
          break;
      }
    });
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值