utils目录下download.js 文件
//保存图片到相册
export const writePhotosAlbum = (successFun, failFun) => {
wx.getSetting({
success(res) {
if (!res.authSetting['scope.writePhotosAlbum']) {
wx.authorize({
scope: 'scope.writePhotosAlbum',
success: function () {
successFun && successFun()
},
fail: function (res) {
wx.hideLoading()
wx.showModal({
title: '提示',
content: "小程序需要您的微信授权保存图片,是否重新授权?",
showCancel: true,
cancelText: "否",
confirmText: "是",
success: function (res2) {
if (res2.confirm) { //用户点击确定'
wx.openSetting({
success: (res3) => {
if (res3.authSetting['scope.writePhotosAlbum']) {
//已授权
successFun && successFun()
} else {
failFun && failFun()
}
}
})
} else {
failFun && failFun()
}
}
});
}
})
} else {
successFun && successFun()
}
}
})
}
load.wxml
<view class="btn" bindtap="downLoadAll">下载多张图片</view>
load.js
// pages/test/test.js
import { writePhotosAlbum } from '../../utils/download'
Page({
/**
* 页面的初始数据
*/
data: {
list: [
'https://timgs.top1buyer.com/admin/special/special_img_20190301160008479.jpg',
'https://timgs.top1buyer.com/admin/special/special_img_20190301160013201.jpg',
'https://timgs.top1buyer.com/admin/special/special_img_20190301160015969.jpg',
'https://timgs.top1buyer.com/admin/special/special_img_20190301160025498.jpg',
'https://timgs.top1buyer.com/admin/special/special_img_20190301160031519.jpg',
'https://timgs.top1buyer.com/admin/special/special_img_20190301160042689.jpg',
'https://timgs.top1buyer.com/admin/special/special_img_20190301160108243.jpg',
'https://timgs.top1buyer.com/admin/special/special_img_20190301160111756.jpg',
'https://timgs.top1buyer.com/admin/special/special_img_20190304160141454.jpg'
],
loading: false
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
downLoadAll() { //物料多个下载
// 下载图片
var _this = this
// 获取保存到相册权限
writePhotosAlbum(
function success() {
wx.showLoading({
title: '加载中',
mask: true
})
// 调用保存图片promise队列
_this
.queue(_this.data.list)
.then(res => {
wx.hideLoading()
wx.showToast({
title: '下载完成'
})
})
.catch(err => {
wx.hideLoading()
console.log(err)
})
},
function fail() {
wx.showToast({
title: '您拒绝了保存到相册'
})
}
)
},
// 队列
queue(urls) {
let promise = Promise.resolve()
urls.forEach((url, index) => {
promise = promise.then(() => {
return this.download(url)
})
})
return promise
},
// 下载
download(url) {
return new Promise((resolve, reject) => {
wx.downloadFile({
url: url,
success: function (res) {
var temp = res.tempFilePath
wx.saveImageToPhotosAlbum({
filePath: temp,
success: function (res) {
resolve(res)
},
fail: function (err) {
reject(res)
}
})
},
fail: function (err) {
reject(err)
}
})
})
}
})