第一种方法:Hbuild中实现图片或word等文件下载后直接打开

将地址换成自己文件的地址即可

首先注册下监听事件:(vue中在mounted中注册即可)

document.addEventListener('plusready', function () { 
  //console.log("所有plus api都应在此事件发生后调用,否则会出现plus is undefined");

});
function downloadWj() {
    var dtask=plus.downloader.createDownload("http://image.baidu.com/search/down?tn=download&ipn=dwnl&word=download&ie=utf8&fr=result&url=http%3A%2F%2Fpic33.nipic.com%2F20131007%2F13639685_123501617185_2.jpg&thumburl=http%3A%2F%2Fimg4.imgtn.bdimg.com%2Fit%2Fu%3D508387608%2C2848974022%26fm%3D26%26gp%3D0.jpg", 
{
     method: "GET"
    });
    var w = plus.nativeUI.showWaiting("开始下载");
    dtask.addEventListener("statechanged", function(task, status) {
     switch (task.state) {
      case 3: // 已接收到数据
       if (w) {
        w.setTitle("数据下载中:" + task.downloadedSize + "/" + task.totalSize);
       }
       break;

      case 4: // 下载完成
       if (status == 200) {
        if (w) {
         w.close();
        }
        plus.runtime.openFile(task.filename, {}, function(e) {
         QxMobile.Alert("无法打开此文件:" + e.emssage);//如果报错可换成自己的提示方式
        });
       } else {
        Alert("下载失败:" + status);//如果报错可换成自己的提示方式
        plus.nativeUI.closeWaiting();
       }
       break;
     }
    });
    dtask.start();
   }

第二种方法:js中实现下载

 function download(){
 var blob = new Blob([], { type: 'application/excel;charset=utf-8' });
 var downloadElement = document.createElement('a');
 downloadElement.style.display = 'none';
 var href = window.URL.createObjectURL(blob); //创建下载链接
 //let sendParams = Base64.encode(JSON.stringify('传递的参数')) // 可以省略  具体看业务需求
 downloadElement.href ='http://192.168.27.1:8080/downloadMailFj?pxh=' + this.pxh + '&xh=' + item.XH;// 此处可以通过拼接字符串的方式传递参数,此处可换成自己的连接地址
 console.log(downloadElement.href);
 document.body.appendChild(downloadElement);
 downloadElement.click();// 点击下载
 //document.body.removeChild(downloadElement); // 下载完成之后移除元素
 // window.URL.removeObjectURL(href); // 释放掉blob对象
}

第三种方法:js通过创建iframe标签实现:

function download(){
       var elemIF = document.createElement('iframe')
       elemIF.src ='http://192.168.127.1:8080/downloadMailFj?pxh=' + this.pxh + '&xh=' + item.XH;//换成自己后端文件流地址即可
       console.log(elemIF.src);
       elemIF.style.display = 'none'
       document.body.appendChild(elemIF);
}

第四种方法:

function download(){
window.open('http://192.168.127.1:8080/downloadMailFj?pxh=' + this.pxh + '&xh=' + item.XH);//括号内换成自己后端文件流地址即可
}

 

Logo

前往低代码交流专区

更多推荐