q***@163.com
q***@163.com
  • 发布:2022-01-04 17:04
  • 更新:2022-01-15 19:06
  • 阅读:887

【报Bug】plus.downloader.enumerate

分类:HTML5+

产品分类: HTML5+

HBuilderX版本号: 3.3.5

手机系统: Android

手机系统版本号: Android 11

手机厂商: OPPO

手机机型: OPPO-PCNM00

打包方式: 云端

操作步骤:

plus.downloader.createDownload 创建新的下载任务后,任务下载完成,在不重启app的情况下是可以通过plus.downloader.enumerate( enumCB, 4)来获取到下载完成的枚举,一旦重启App就获取不到了。

预期结果:

重启app仍然能够获取到下载完成的枚举

实际结果:

重启app后获取不到下载完成的枚举了, (注:该问题是我更新过hbuilder后才出现,我的业务功能是都已经实现了的,更新完之后就出现了这个问题,当我使用以前版本的hbuider打自定义基座包后再测试这个bug就不存在, 正常的版本:3.2.16)

bug描述:

调用plus.downloader.enumerate( enumCB, 4);无法获取到已下载完成的枚举。

2022-01-04 17:04 负责人:无 分享
已邀请:
DCloud_Android_DQQ

DCloud_Android_DQQ

bug 已确认。 确认下载任务应该持久化管理。

q***@163.com

q***@163.com (作者)

应该不是5+plus的问题,还是hubilder更新的问题。

q***@163.com

q***@163.com (作者)

别沉

DCloud_Android_DQQ

DCloud_Android_DQQ

两个问题:
1 帮忙提供一个可以说明问题的可执行代码页面
2 其实这种下载任务,重启后应该清除掉是不是更合理

  • DCMarvel

    从读取数据方便性角度下,清理掉当然不合理啊,如果想找下载完成的历史数据做文件读取/删除等操作是不是更方便.

    从应用缓存大小角度下,自动清理可能合理.就是不知道自定义储存和plus.downloader的缓存哪一个更占空间


    2022-01-04 20:53

  • q***@163.com (作者)

    1:这个已经确定不是代码的问题,代码块就一调用plus.downloader.enumerate(() => {},4)

    2:我认为您说的是可行的,但是要重新优化下enumerate方法,既然已经下载完成就直接清除掉记录,如果是重启后清除,对于我们自己来处理历史数据是非常复杂的。

    对于我个人来说我认为还是不清除掉更加方便,因为所有数据统一在一个接口中获取到了,就不需要来处理其他的逻辑,因为我这边是做的视频下载列表的功能,所以这个接口对我来说挺重要的。


    2022-01-05 10:04

  • DCloud_Android_DQQ

    回复 q***@163.com: 明白。 那还是帮忙提供一个 可以复现问题的示例吧。 提供后 我这边看看


    2022-01-05 11:18

  • q***@163.com (作者)

    回复 DCloud_Android_DQQ: 代码已经放到下面了,直接复制就可以。麻烦您了


    2022-01-05 12:31

q***@163.com

q***@163.com (作者)

<style lang="scss">  
  
</style>  
  
<template>  
	<view>  
		<button type="default" @click="_add">添加一个下载任务</button>  
		<button type="default" @click="_getSuccessList">获取下载成功的枚举列表</button>  
		<text>点击添加下载等待下载成功后,点击获取下载成功的列表,此时会得到下载成功的长度,然后关闭App再次打开点击获取下载成功的列表,此时获取的是0(预期是重新打开不会清除下载成功的记录)</text>  
	</view>  
</template>  
  
<script>  
	export default {  
		data() {  
			return {  
			  
			};  
		},  
		methods: {  
			_add(){  
				this.downLoadTask = plus.downloader.createDownload("http://39.101.171.94:8899/videos/clip/41010500001320000013/2022-01-05/20220105115939.mp4", {  
					filename: `_downloads/ballvideo/测试.mp4`, //下载的位置  
					timeout: 0,  
					name: "别名", //别名  
				}, (download, status) => {  
					if (status == 200) {  
						uni.showToast({  
							title:'下载成功'  
						})  
					}  
				});  
				this.downLoadTask.start()  
				uni.showToast({  
					title: "已添加至下载列表",  
					icon: "none"  
				})  
			},  
			_getSuccessList(){  
				plus.downloader.enumerate(downListSus => { //获取已经下载成功了的列表  
					uni.showToast({  
						title:`获取到${downListSus.length}个下载成功的任务`,  
						icon:"none"  
					})  
				}, 4);  
			},  
		}  
	}  
</script>  

DCloud_Android_ST

DCloud_Android_ST

HX3.3.7+已修复该问题

该问题目前已经被锁定, 无法添加新回复