uni-app之app下载apk文件

调试成功的下载apk的方法

// 文件下载    '_downloads/'
const fDownloadHandler = (id, xlsName) => {
  //注意:url是你要下载的文件路径,  xlsName(变量,随便命名) 是文件的后缀名,用于文件命名和格式修改
  var options = {
    //自定义下载文件路径,保存文件路径仅支持以"_downloads/"、"_doc/"、"_documents/"开头的字符串
    filename: '_downloads/' + xlsName,
//默认为GET请求。注意这里需大写“GET”、“POST”
    // method: "GET" ,
  };

  let url = config.url + `xxx/app`;
  let dtask = plus.downloader.createDownload(
    url,
    options,
    function (d, status) {
      //d为下载的文件对象;status下载状态
      if (status == 200) {

        //下载成功
        uni.showToast({
          icon: "none",
          mask: true,
          title:'我的手机/Android/data/io.dcloud.HBuilder/downLoads', //保存路径
          duration: 3000,
        });
        //d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
        let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);

        // plus.runtime.openFile(d.filename); //选择软件打开文件
        
        plus.runtime.install(d.filename)  //安装apk


      } else {
        //下载失败
        uni.showToast({
          icon: "none",
          mask: true,
          title: "下载失败,请稍后重试!", //保存路径
        });
        plus.downloader.clear(); //清除下载任务
      }
    }
  );

  // dtask.setRequestHeader(
  //   "Authorization",
  //   "Bearer " + useUser?.userinfo?.authorization
  // );
  dtask.start(); //启用
};

踩的坑

1.let url = config.url + xxx/app中,config.url和 `xxx/app有没有多一条“/”;
2.下载文件的保存的路径是:“我的手机/Android/data/io.dcloud.HBuilder/downLoads”

不成功的方法,以备不时之需

// 下载文件接口   
const fDownloadHandler111 = (id, xlsName) => {
  //注意:url是你要下载的文件路径,  xlsName(变量,随便命名) 是文件的后缀名,用于文件命名和格式修改
  var options = {
    filename: "file://storage/emulated/0/中考中招/" + xlsName,
       // 指定下载保存路径
      //  savePath:  "file://storage/emulated/0/中考中招/" + xlsName, 
        // 设置响应类型为Blob,以便后续操作
        responseType: 'blob'
  };

  // let url = config.url + `/sys/file/info/download?id=${id}`;
  let url = config.url + `/bs/student/info/import/template`;

  let dtask = plus.downloader.createDownload(
    url,
    options,
    function (d, status) {
   
   
      //d为下载的文件对象;status下载状态
      if (status == 200) {
        //下载成功
        uni.showToast({
          icon: "none",
          mask: true,
          // title: "已保存到文件夹:/中考中招/" + xlsName+d.filename, //保存路径
          title: d.filename, //保存路径

          duration: 3000,
        });
        //d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
        let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);

        plus.runtime.openFile(d.filename); //选择软件打开文件
       
        // plus.runtime.install(d.filename)


      } else {
        //下载失败
        uni.showToast({
          icon: "none",
          mask: true,
          title: "下载失败,请稍后重试!", //保存路径
        });
        plus.downloader.clear(); //清除下载任务
      }
    }
  );

  dtask.setRequestHeader(
    "Authorization",
    "Bearer " + useUser?.userinfo?.authorization
  );

  dtask.setRequestHeader(
    "Content-Type",
    'application/octet-stream'
  );
  dtask.start(); //启用
};
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值