项目使用vue+vant来开发的,开发环境使用js动态创建a标签来做下载功能的,测试环境用hbuilder打包为安卓发现这样的写法下载失败,改用h5的plus.downloader.createDownload发现下载成功,具体代码粘下面了,直接套用就可以!
downLoadFile(data) {
//后端下载文件接口
let picurl = `${this.baseUrl}/attache/downLoad/${data.id}?response-content-type=application/octet-stream`
// 参数(文件名称)
let name = data.fileName
let datas = {
//自定义下载文件路径,保存文件路径仅支持以"_downloads/"、"_doc/"、"_documents/"开头的字符串
filename: '_downloads/' + name,
//默认为GET请求。注意这里需大写“GET”、“POST”
method: 'GET'
}
let dtask = plus.downloader.createDownload(
picurl,
datas,
(d, status) => {
// 下载完成
if (status == 200) {
this.$toast('正在打开')
//下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
var fileSaveUrl =
plus.io.convertLocalFileSystemURL(
d.filename
)
plus.runtime.openFile(d.filename) //下载完后自动弹出可以选择的app,预览文件
} else {
dtask.clear() //清除下载任务
this.$toast('下载失败')
}
}
)
// 开始下载
dtask.start()
},