用uni.saveFile h5报错 saveFile API saveFile is not yet implemented
查看文档发现不支持h5
解决方法:
这个我用了pc 端一样的方法用a标签来下载保存代码如下:
第一种:
const a = document.createElement('a');
a.href = filePath; //filePath 这里的地址是 uni.downloadFile 中的返回值里的地址
a.download = finName; // 可以设置下载文件名,如果是空字符串,则使用服务器端设置的文件名
a.click();
第二种 可以引用js第三方库来进行保存
先安装 file-saver
npm install file-saver --save
引用
import { saveAs } from 'file-saver';
//filePath 这里的地址是 uni.downloadFile 中的返回值里的地址
//finName 下载文件名
saveAs(filePath,finName)
整体代码:
fileDwonload(url='https://example.com/somefile.pdf') {
uni.showLoading({title: '下载中'});
const index = url.lastIndexOf('/');
const finName = url.slice(index + 1, url.length)//下载文件
uni.downloadFile({
url: url, //请求地址
savePath: finName,
success: (res) => {
//下载成功
if (res.statusCode === 200) {
//保存文件
let filePath = res.tempFilePath;
// #ifdef H5
// saveAs(filePath,finName);
const a = document.createElement('a');
a.href = filePath;
a.download = finName; // 可以设置下载文件名,如果是空字符串,则使用服务器端设置的文件名
a.click();
// #endif
// #ifdef MP-WEIXIN || APP-PLUS
uni.saveFile({
tempFilePath: filePath,
success: function(filRes) {
console.log(filRes, '=====>');
},
fail: function(err) {
console.log('保存失败');
}
})
// #endif
uni.hideLoading()
}
},
fail: (e) => {
console.log(e, '文件下载失败')
uni.showToast({
title: '文件下载失败',
icon: "error",
})
}
});
}