该方法是基于在普通浏览器中 , 如果是在微信浏览器,要借助一个中转页,引导用户打开其他浏览器来下载。
百度了一堆,不是ios不兼容,就是android不兼容,只好自己拼凑一波记录一下,以免下次找不到了。
.1 准备静态
html代码:
<div className={"source_down_btn"} onClick={this.realDown}>
立即下载
</div>
.2 准备下载所需要的包
import download from "downloadjs"
.3 js代码
/** @params
filename: 文件名称
fileurl: 文件路径
*/
realDown = () => {
const { filename, fileurl} = this.props.location.state
let ua = navigator.userAgent.toLowerCase()
if (ua.includes("mac")) {
//iOS 将文件url转换为文件流 在下载
this.downloadFun (
fileurl +
"?response-content-type=application/octet-stream",
filename,
)
} else {
//android 直接用插件的方法下载即可
download(fileurl,filename)
}