uniapp结合H5+下载apk并安装打开

2020-07-20  本文已影响0人  子夜照弦歌

原创文章,转载请注明出处
官方文档
参考文章


      // fingerPkg这里是包名
      let _this = this;
      // 判断平台
      if (plus.os.name == "Android") {
        // 判断有没有安装应用
        if (
          plus.runtime.isApplicationExist({
            pname: _this.fingerPkg
            // action: "weixin://" //这里是ios,需要配置,这里不做说明,可去官网查看
          })
        ) {
          console.log("微信应用已安装");
          // 打开应用
          plus.runtime.launchApplication(
            {
              pname: _this.fingerPkg,
              extra: {
                // 这里写额外参数
              }
            },
            function(e) {
              // 打开失败回调
              console.log(JSON.stringify(e));
              console.log("Open system default browser failed: " + e.message);
            }
          );
        } else {
          _this.$Common.user.showToast("检测到未下载应用,正在下载,请勿离开");
          // 未下载应用,去下载, pkgUrl为下载地址
          var dtask = plus.downloader.createDownload(_this.pkgUrl, {}, function(
            d,
            status
          ) {
            // 下载完成,打开文件
            if (status == 200) {
              plus.runtime.openFile(d.filename);
            } else {
              _this.$Common.user.showToast("下载失败,请手动下载");
            }
          });
          // 这里是监听下载进度,可以自己生成进度条
          dtask.addEventListener("statechanged", function(task, status) {
            if (!dtask) {
              return;
            }
            switch (task.state) {
              case 1:
                _this.$Common.user.showToast("开始下载...");
                break;
              case 2:
                _this.$Common.user.showToast("正在下载...");
                break;
              case 3: // 已接收到数据
                var progressVal = (task.downloadedSize / task.totalSize) * 100;
                _this.$Common.user.showToast(Number(progressVal) + "%");
                break;
              case 4:
                dtask = null;
                _this.$Common.user.showToast("正在打开文件...");
                break;
            }
          });
          // 开始下载
          dtask.start();
        }
      } else if (plus.os.name == "iOS") {
        // ios 暂未做,以后有机会补上
        // plus.runtime.launchApplication({ action: "taobao://" }, function(e) {
        //   console.log("Open system default browser failed: " + e.message);
        // });
      }
上一篇下一篇

猜你喜欢

热点阅读