用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",})}
});}