美文网首页
uniapp结合H5+下载apk并安装打开

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

作者: 子夜照弦歌 | 来源:发表于2020-07-20 19:22 被阅读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);
            // });
          }
    

    相关文章

      网友评论

          本文标题:uniapp结合H5+下载apk并安装打开

          本文链接:https://www.haomeiwen.com/subject/ixnykktx.html