uniapp plus.downloader.createDownload多任务下载

uniapp 使用plus.downloader.createDownload多任务下载

index.js

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);
const store = new Vuex.Store({
   
	state:{
   
		downloads: [],
		downloadTasks:[],
	},
	mutations:{
   
		//添加下载任务
		ADD_DOWNLOAD(state, download) {
     
			state.downloads.push(download);  
		},
		//删除下载任务
        REMOVE_DOWNLOAD(state, taskId) {
     
            state.downloads = state.downloads.filter(download => download.taskId !== taskId);  
        },
		//设置对应任务下载状态
		UPDATE_DOWNLOADS_STATUS(state, {
     taskId, status }) {
     
            const download = state.downloads.find(d => d.taskId === taskId);  
            if (download) {
     
                download.status = status;  
            }  
        },
        //更新对应任务下载进度
        UPDATE_DOWNLOAD_PROGRESS(state, {
     taskId, progress }) {
     
			const download = state.downloads.find(d => d.taskId === taskId);  
			if (download) {
     
				download.progress = progress;  
			}  
		},
        //新增下载任务实例
		ADD_DOWNLOAD_TASK(state, task) {
     
            state.downloadTasks.push(task);  
        },
        //删除下载任务实例
        REMOVE_DOWNLOAD_TASK(state, taskId) {
     
            state.downloadTasks = state.downloadTasks.filter(task => task.taskId !== taskId);  
        },
	
UniApp 中的 `uni.download` 或 `plus.downloader.createDownload` 是用于下载文件的功能,但它不是像浏览器原生下载那样自动处理失败后的恢复下载。如果下载过程中发生错误导致下载失败,通常不会自动重新尝试下载。 如果你需要实现这样的功能,你需要自己管理下载状态并处理错误。以下是一个简化的示例: ```javascript let downloadTask = plus.downloader.createDownload({ url: 'http://example.com/file.zip', // 替换为你实际的下载地址 savePath: '/sdcard/download', // 存储路径 progressCallback: function (progress) { console.log('下载进度:', progress); }, completeCallback: function (result) { if (result.status === plus.downloader.STATUS_SUCCESS) { console.log('下载成功'); } else { console.error('下载失败:', result.message); // 如果你想在这里恢复下载,可以设置定时器重新尝试,但请注意控制循环次数以避免无限循环 setTimeout(() => { // 检查网络连接等条件再尝试下载 // 下载失败恢复的代码 }, 5 * 1000); // 假设每5秒尝试一次 } }, errorCallback: function (error) { console.error('下载错误:', error); // 直接在这里记录错误,然后考虑是否需要恢复下载 }, }); downloadTask.start(); ``` 注意,这只是一个基本的示例,并非完整的错误恢复机制。实际应用中,可能需要更复杂的逻辑来判断是否真的需要恢复下载,比如检查网络状况、用户操作反馈等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值