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

【报Bug】plus.downloader.enumerate

分类:HTML5+

产品分类: HTML5+

HBuilderX类型: 正式

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+已修复该问题

要回复问题请先登录注册