為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴
發(fā)表日期:2019-11 文章編輯:小燈 瀏覽次數(shù):5167
之前寫(xiě)個(gè)一個(gè)版本的[多圖下載],重構(gòu)進(jìn)行了代碼升級(jí)讓代碼更加簡(jiǎn)介
分為兩步:
第一獲取保存到相冊(cè)權(quán)限
第二下載圖片
主要涉及兩個(gè)文件,index.js 和download.js
另外現(xiàn)在如果有圖片下載失敗也彈出下載完成后續(xù)需要優(yōu)化
/**
* 獲取相冊(cè)權(quán)限
*/
export function wxSaveAuth() {
return new Promise((resolve, reject) => {
wx.getSetting({
success(res) {
if (!res.authSetting['scope.writePhotosAlbum']) {
// 如果沒(méi)有寫(xiě)入權(quán)限,則獲取寫(xiě)入相冊(cè)權(quán)限
wx.authorize({
scope: 'scope.writePhotosAlbum',
success() {
resolve()
},
fail(err) {
reject(err)
// 用戶拒絕授權(quán)
wx.showModal({
content: '檢測(cè)到您沒(méi)打開(kāi)捷買士的相冊(cè)權(quán)限,是否去設(shè)置打開(kāi)?',
confirmText: '確認(rèn)',
cancelText: '取消',
success(res) {
if (res.confirm) {
wx.openSetting({
success: res => {}
})
}
}
})
}
})
} else {
resolve()
}
},
fail(e) {
reject(e)
}
})
})
}
/**
* 多文件下載并且保存
* @param {Array} urls 網(wǎng)絡(luò)圖片數(shù)組
*/
export function downloadImgs(urls) {
wx.showLoading({
title: '圖片下載中',
mask: true
})
const imageList = []
// 循環(huán)數(shù)組
for (let i = 0; i < urls.length; i++) {
imageList.push(getTempPath(urls[i]))
}
const loadTask = []
let index = 0
while (index < imageList.length) {
loadTask.push(
new Promise((resolve, reject) => {
// 將數(shù)據(jù)分割成多個(gè)promise數(shù)組
Promise.all(imageList.slice(index, (index += 8)))
.then(res => {
resolve(res)
})
.catch(err => {
reject(err)
})
})
)
}
// Promise.all 所有圖片下載完成后彈出
Promise.all(loadTask)
.then(res => {
wx.showToast({
title: '下載完成',
duration: 3000
})
})
.catch(err => {
wx.showToast({
title: `下載完成`,
icon: 'none',
duration: 3000
})
})
}
/**
*
* @param {String} url 單張網(wǎng)絡(luò)圖片
*/
//下載內(nèi)容,臨時(shí)文件路徑
function getTempPath(url) {
return new Promise((resolve, reject) => {
wx.downloadFile({
url: url,
success: function(res) {
var temp = res.tempFilePath
wx.saveImageToPhotosAlbum({
filePath: temp,
success: function(res) {
return resolve(res)
},
fail: function(err) {
reject(url + JSON.stringify(err))
}
})
},
fail: function(err) {
reject(url + JSON.stringify(err))
}
})
})
}
// pages/save-imgs/index.js
import { wxSaveAuth, downloadImgs } from '../../utils/download'
Page({
/**
* 頁(yè)面的初始數(shù)據(jù)
*/
data: {
urls: [
'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4',
'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4',
'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4',
'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4',
'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4',
'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4',
'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4',
'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4'
]
},
/**
* 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載
*/
onLoad: function(options) {},
download() {
// 獲取保存到相冊(cè)權(quán)限
wxSaveAuth().then(res => {
// 保存多張圖片到相冊(cè)
downloadImgs(this.data.urls)
})
},
})
git clone https://github.com/sunnie1992/sol-weapp.git
掃描添加下方的微信并備注 Sol 加交流群,交流學(xué)習(xí),及時(shí)獲取代碼最新動(dòng)態(tài)。
如果對(duì)你有幫助送我一顆小星星(づ ̄3 ̄)づ╭?~
日期:2019-11 瀏覽次數(shù):5528
日期:2019-11 瀏覽次數(shù):11984
日期:2019-11 瀏覽次數(shù):4353
日期:2019-11 瀏覽次數(shù):5388
日期:2019-11 瀏覽次數(shù):5261
日期:2019-11 瀏覽次數(shù):7183
日期:2019-11 瀏覽次數(shù):5166
日期:2019-11 瀏覽次數(shù):15770
日期:2019-11 瀏覽次數(shù):4721
日期:2019-11 瀏覽次數(shù):6520
日期:2019-11 瀏覽次數(shù):5374
日期:2019-11 瀏覽次數(shù):4565
日期:2019-11 瀏覽次數(shù):10764
日期:2019-11 瀏覽次數(shù):8321
日期:2019-11 瀏覽次數(shù):5081
日期:2019-11 瀏覽次數(shù):4314
日期:2019-11 瀏覽次數(shù):8955
日期:2019-11 瀏覽次數(shù):4650
日期:2019-11 瀏覽次數(shù):4847
日期:2019-11 瀏覽次數(shù):4867
日期:2019-11 瀏覽次數(shù):4480
日期:2019-11 瀏覽次數(shù):5028
日期:2019-11 瀏覽次數(shù):10284
日期:2019-11 瀏覽次數(shù):5461
日期:2019-11 瀏覽次數(shù):5438
日期:2019-11 瀏覽次數(shù):4887
日期:2019-11 瀏覽次數(shù):12333
日期:2019-11 瀏覽次數(shù):7356
日期:2019-11 瀏覽次數(shù):7905
日期:2019-11 瀏覽次數(shù):4858
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.