关于解决微信浏览器兼容安卓、ios系统的下载功能

135 阅读1分钟

后台下载接口可能是post或者get类型。

一、如果是get请求,是完美的方案。步骤:创建a标签,然后给a标签的href加请求接口地址(该地址要自己拼接,把参数和token等加上),给dom加上a标签并触发点击下载事件,然后移除a标签。代码示例如下: let link = document.createElement('a') let url = 'http://22.145.26.28:8080/a/b/download?linkId=123&token=' link.href = url link.download = '文件名.pdf' link.style.display = 'none document.body.appendChild(link) link.click() document.body.removeChild(link)

二、如果是post请求,在安卓端会有问题,跳到其他浏览器就打不开了。这是由于window.URL.createObjectURL(blob)得到的路径是只能在本浏览器用的,路径用于指向该bolb流。所以让后端改为get请求。

三、如果是pc端的项目,可以用window.URL.createObjectURL(blob)产生的地址用于a标签的href。