最近写个视频详情页,有下载视频的功能,百度一堆文档,但是千篇一律的都看不太明白,总归是太菜了,从头开始研究一番
第一步
需要查询用户的授权情况,获取用户设置 wx.getSetting()
返回值中只会出现小程序已经向用户请求过的权限。

授权总结了三种情况:
1.用户从来没有授权过,res.authSetting[’scope.writePhotosAlbum’]===undefined
需要wx.authorize:提前向用户发起授权请求。调用后弹出弹框向用户询问授权,如果用户已经授权,就不会弹出弹框,直接success
wx.authorize({
scope:'scope.writePhotosAlbum',
success(){
//保存视频
},
fail(){
//提示:拒绝授权后不能保存视频到相册
}
})
2.用户授权过之后又关闭授权,!res.authSetting[’scope.writePhotosAlbum’]
需要wx.openSetting:调起客户端小程序设置界面,返回用户设置的操作结果。设置界面只会出现小程序向用户请求过的权限。(openSetting在模拟器不起作用,需要真机调试)
wx.openSetting({
success(res){
//用户手动打开保存视频权限
if(res.authSetting['scope.writePhotosAlbum']){
//保存视频
return
}
wx.showToast({
title:'未授权,无法保存到相册',icon:'none'})
},
fail(){
//提示授权失败
}
})
3.用户已经授权,可以直接保存
第二步
下载视频
1.要先下载到本地获取临时路径
let fileName = new Date().valueOf();
wx.downloadFile({
url: link,
filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4',
success(res<

本文围绕小程序视频详情页的视频下载功能展开。首先介绍查询用户授权的三种情况及对应处理方式,接着说明下载视频需先获取临时路径,再保存到相册并删除临时文件。最后提及保存时可能出现的问题及解决办法,如配置合法域名、替换http开头的url等。
最低0.47元/天 解锁文章
3382





