后端传回的是arrayBuffer. 目前的下载方式是常见的转blob,然后直接使用浏览器下载,代码如下:
// res.data是后端传回的数据
let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'})
let url = window.URL.createObjectURL(blob)
window.open(url)
这时候会打开浏览器的默认下载;
但是在用户使用如qq浏览器,并把下载方式设置为迅雷下载之后就无效了;
如果使用迅雷的js-sdk时会唤起迅雷,但是无法下载;因为window.URL.createObjectURL(blob)创建的是一个指向内存的映射并不是一个真正的下载地址;
所以请问如果用户将下载设置成了迅雷的方式:
1.前端能否实现唤起迅雷下载?
2.如果不能,能否在用户设置了迅雷下载的情况下,使用浏览器自带的下载?
这样做的意义是啥呢?
这种情况下,后段这样返回的数据,不能分段下载,也就没有多队列下载的必要,那为何还要迅雷下载呢?