ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

微信小程序下载视频或者照片或者文件到本地相册中

2021-07-04 12:01:32  阅读:217  来源: 互联网

标签:或者 success 微信 failc 相册 && res fail wx


 

 

/**

* 下载单个文件
*/
function downloadFile(type, url, successc, failc) {
checkAuth(() => {
wx.showLoading({
title: '正在下载',
mask: true
})
downloadSaveFile(
type,
url,
() => {
wx.hideLoading();
wx.showToast({
title: '下载成功',
icon: 'none',
})
successc && successc();
},
(errMsg) => {
wx.hideLoading();
wx.showToast({
title: errMsg,
icon: 'none',
})
failc && failc();
}
);
})
}

/**
* 下载多个文件
*/
function downloadFiles(type, urls, completec) {
let success = 0;
let fail = 0;
let total = urls.length;
let errMsgs = [];

checkAuth(() => {
wx.showLoading({
title: '正在下载',
mask: true
})
for (let i = 0; i < urls.length; i++) {
downloadSaveFile(
type,
urls[i],
() => {
success++;
if (success + fail === total) {
saveCompleted(success, fail, completec, errMsgs);
}
},
(errMsg) => {
fail++;
errMsg && errMsgs.push(`视频${i}${errMsg}`);
if (success + fail === total) {
saveCompleted(success, fail, completec, errMsgs);
}
}
);
}
})
}

//保存完成
function saveCompleted(success, fail, completec, errMsgs) {
wx.hideLoading();
let errMsg = '无';
if (errMsgs.length) {
errMsg = errMsgs.join('\n');
}

wx.showModal({
title: `成功${success}项,失败${fail}项`,
content: `失败信息:\n${errMsg}`,
showCancel: false,
success(res) {
if (res.confirm) {
completec && completec();
}
}
})
}

//下载文件
function downloadSaveFile(type, url, successc, failc) {
wx.downloadFile({
url: url,
success: res => {
if (res.statusCode === 200) {
if (type === 'video') {
//类型为视频
wx.saveVideoToPhotosAlbum({
filePath: res.tempFilePath,
success: res => {
successc && successc();
},
fail: res => {
failc && failc('保存失败');
}
})
} else if (type === 'image') {
//类型为图片
wx.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: res => {
successc && successc();
},
fail: res => {
failc && failc('保存失败');
}
})
}else if(type==='file'){
wx.saveFile({
tempFilePath: res.tempFilePath,
success(res) {
const savedFilePath = res.savedFilePath
console.log(res)
}
})
}
} else {
failc && failc('状态码非200');
}
},
fail: res => {
failc && failc('下载失败');
}
})
}

//检查权限
function checkAuth(gotc) {
//查询权限
wx.showLoading({
title: '检查授权情况',
mask: true
})
wx.getSetting({
success(res) {
wx.hideLoading();
if (!res.authSetting['scope.writePhotosAlbum']) {
//请求授权
wx.authorize({
scope: 'scope.writePhotosAlbum',
success() {
//获得授权,开始下载
gotc && gotc();
},
fail() {
wx.showModal({
title: '',
content: '保存到系统相册需要授权',
confirmText: '授权',
success(res) {
if (res.confirm) {
wx.openSetting({
success(res) {
if (res.authSetting['scope.writePhotosAlbum'] === true) {
gotc && gotc();
}
}
})
}
},
fail() {
wx.showToast({
title: '打开设置页失败',
icon: 'none',
})
}
})
}
})
} else {
//已有授权
gotc && gotc();
}
},
fail() {
wx.hideLoading();
wx.showToast({
title: '获取授权失败',
icon: 'none',
})
}
})
}

module.exports = {
downloadFile,
downloadFiles
};

标签:或者,success,微信,failc,相册,&&,res,fail,wx
来源: https://www.cnblogs.com/binmengxue/p/14968596.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有