<button type="primary" class="btn" @tap="down">下载</button>
先写一个下载按钮到页面上
uniapp官方封装好了下载的方法uni.downloadFile()
down() {
uni.request({
url: "this.urls",//请求接口的地址
method: 'GET',
dataType: "json",
success: res => {
console.log(res.data[0].pictureurl)
this.urls = res.data[0].pictureurl
uni.setStorageSync("urls", res.data[0].pictureurl)
console.log(this.urls)
let thats = this
const downloadTask = uni.downloadFile({
url: thats.urls,
success: (res) => {
console.log(res)
uni.showToast({
title: '下载成功',
icon: 'success'
})
let that = this;
uni.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: function() {
uni.showToast({
title: "保存成功",
icon: "none"
});
},
fail: function() {
uni.showToast({
title: "保存失败,请稍后重试",
icon: "none"
});
}
});
}
});
downloadTask.onProgressUpdate((res) => {
console.log('下载进度' + res.progress);
console.log('已经下载的数据长度' + res.totalBytesWritten);
console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
});
}
})
}
我咋这里先请求uni.request的原因是我的下载链接是在接口里,直接调用下载方法uni.downloadFile拿不到下面放置下载链接的参数,所以我先调用uni.request方法先拿取这个参数之后在调用的下载方法。
方法:uni.saveImageToPhotosAlbum是官方文档中有的作用是将下载的图片保存到本机相册中,建议大家在运行测试的时候可以放到模拟器测试,以上方法不支持在H5运行。
官方文档:uni.downloadFile()uni.uploadFile(OBJECT) | uni-app官网
官方文档:uni.saveImageToPhotosAlbumuni.chooseImage(OBJECT) | uni-app官网