IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 微信小程序下载一个视频到本地相册,显示下载进度,可取消下载 -> 正文阅读

[移动开发]微信小程序下载一个视频到本地相册,显示下载进度,可取消下载

<text bindtap="_onDownloadClick">下载</text>
<view class="download-area" wx:if="{{actionData}}" >
  <text class="progress">{{progress||0}}%</text>
  <text class="moment">正在下载成片,请稍等片刻…</text>
</view>

//点击下载按钮

_onDownloadClick(){
??? this.getPhotosAlbumAuth()
},


//获取相册权限
getPhotosAlbumAuth() {
? var that = this;
? wx.getSetting({
??? success(res) {
????? if (!res.authSetting['scope.writePhotosAlbum']) {
??????? wx.authorize({
????????? scope: 'scope.writePhotosAlbum',
????????? success:()=> { //这里是用户同意授权后的回调
??????????? that.handleDownload();
????????? },
????????? fail:()=> { //这里是用户拒绝授权后的回调
??????????? that.rejectSetting()
????????? }
??????? })
????? } else { //用户已经授权过了
??????? that.handleDownload();
????? }
??? }
? })
},


//用户拒绝授权后的回调
rejectSetting(){
? var that=this;
? wx.showModal({
??? title: '警告',
??? content: '授权失败,请打开相册的授权',
??? success: (res) => {
????? if (res.confirm) { //去授权相册
??????? that.toOpenSetting();
????? } else if (res.cancel) {//用户点击取消
??????? console.log(res);
??????? wx.showModal({
????????? title: '提示',
????????? content: '获取权限失败,将无法保存到相册哦~',
????????? showCancel: false,
????????? success:(res)=>{
??????????? that.toOpenSetting();
????????? }
??????? })
????? }
??? }
? })
},
//打开微信设置页面
toOpenSetting() {
? wx.openSetting({
??? success: (e) => {
????? console.log(e);
??? }
? })
},


//下载
handleDownload() {
//下载的时候想需要展示一个进度条的页面
? this.setData({
??? showAction:true
? });

? let fileName = new Date().valueOf();
? (this as any).downloadTask = wx.downloadFile({
??? url: this.data.link,//视频的url地址
?? filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4',//固定的相册的路径不需要修改
??? success: res => {
????? let filePath = res.filePath;//下载到本地获取临时路径
????? wx.saveVideoToPhotosAlbum({
??????? filePath,
??????? success: file => {
????????? wx.showToast({
??????????? title: '下载成功',
??????????? icon: 'success',
??????????? duration: 2000
????????? })
????????? let fileMgr = wx.getFileSystemManager();
????????? fileMgr.unlink({//删除临时文件
??????????? filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4',
??????????? success: function (r) {
????????????? console.log("r",r)
??????????? },
????????? })
??????? },
??????? fail: err => {
????????? console.log(err);
????????? this.data.progress>0&&this.downloadTask.abort() // 取消下载任务
??????? }
????? })
??? }
? });

? this.downloadTask.onProgressUpdate((res: any) => {
??? this.setData({
????? progress:res.progress
??? })
??? if(res.progress==100){
????? this._onSheetCancel();
??? }
?? // console.log('下载进度', res.progress)
?? // console.log('已经下载的数据长度', res.totalBytesWritten)
?? // console.log('预期需要下载的数据总长度', res.totalBytesExpectedToWrite)
})

},


//取消下载
_onDownloadCancel(){
? this.data.progress>0&&this.downloadTask.abort() // 取消下载任务
},

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 21:08:24  更:2022-09-24 21:09:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:50:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码