使用官方提供的文件下载大文件 不做任何限流操作
- 发布:2021-03-27 19:52
- 更新:2021-10-11 20:19
- 阅读:1309
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: bigsur
HBuilderX类型: Alpha
HBuilderX版本号: 3.1.6
手机系统: Android
手机系统版本号: Android 10
手机厂商: 华为
手机机型: 小米10
页面类型: nvue
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
app进程不会阻塞app
app进程不会阻塞app
实际结果:
app卡死 无响应 甚至直接闪退
app卡死 无响应 甚至直接闪退
bug描述:
关于安卓使用uni提供的文件下载api的终极反馈
1.ios正常 安卓下载过程中超过一定大小的文件/或网络带宽过高 此api会完全阻塞app进程 导致无法页面无法后退 最后无响应(此bug论坛已经有人反应但是无任何官方回复)
- 寻求替代方案:目前已知的原生下载插件我自己测试了3款下载插件(没有一个能正常用户 包括(大文件无下载回调 / 大文件无法下载 / ios下载闪退 )) 所以应用市场上至少现在无任何可用替代方案
- 通过分片下载 分片下载这边我个人的构思是 通过http协议进行切片下载 这样可以代码来控制在安卓端出现的阻塞进程问题 但是最后两个问题 1.请求无法获取到二进制流数据 返回的都是字符串写入 通过io api写入到存储里面的文件是无法读取的 2. app不提供head请求 以为着相关操作需要由服务端来计算切片内容
以上bug我本人花费了一天的时间进行bug验证 依旧测试查阅相关帖子 官方基本是无任何回复 没有可替代方案 文件下载作为app里面一项基础到不能在基础的功能为何出现此问题官方不进行处理?
6***@qq.com (作者)
你说的这个我有考虑过 也经过了代码实验 结果是没有什么效果的 就算不对UI做刷新进程也还是阻塞状态。我是在nvue。昨天测试的时候文件大小700m
-
6***@qq.com (作者)
回复 MonikaCeng: 我试一下 plus.downloader 刚才尝试了用uni.download进行分片下载 app还是会卡 但是app能切换页面(但是有个问题:因为多次http请求 资源目标直接限流了)
2021-03-27 23:24
-
6***@qq.com (作者)
回复 MonikaCeng: 你说的的这个plus.downloader 我也测试了 一样会卡 我稍后上传我录制的视频 是怎的卡到无法操作
2021-03-27 23:35
-
6***@qq.com (作者)
回复 6***@qq.com: 回复 coding3:
plus.downloader.createDownload(url)
plus.downloader.startAll()
console.log('下载开始')
// dow.start(url)2021-03-27 23:40
目前使用两个个低端安卓机器(nexus4、魅族 8x),测试了 vue 和 nvue 均未复现,是网速不够吗?
测试地址使用的是:https://download1.dcloud.net.cn/download/HBuilderX.3.1.6.20210326.full.zip
-
6***@qq.com (作者)
what? 我等下给你录制视频 你应该就懂了。我也用你这个地址进行下载测试 (我想表达的是:在下载过程ui会阻塞。而不是下载不成功哦)
2021-03-30 22:56
-
6***@qq.com (作者)
卡顿视频地址:http://mallimage.wozokeji.com/1617118752998359.mp4
BUG描述:
1.打开app后app页面可以正常进行切换
2.当我点击首页播放的时候是模拟了一个用户的下载行为 (因为本地带宽500m左右 您这边提供的视频大小为200m 会在几秒内下载完毕 所以我切换了一个大小为5.0GB的文件)
3.开始下载行为后 miui监听到的下载带宽约为100m的样子 实际下载数度大约为12mb/s 这个时候手机已经无法切换页面 (在实际的app状态中 是无法进行页面后退 点击 所有的ui事件都会在下载完成后才会触发)
4.如上描述 我这边进行了wifi切断的操作(手机无sim卡 所以意味着下载行为中断)
5.切断wifi后 ui事件开始触发 所有在下载期间积累的事件都会在下载行为停止后挨个触发
6.退出app后我进行第二次模拟( 共有两次下载行为 原因是 第一次下载文件下载速度只有4m一秒 UI未出现卡断 所以我 积累了两次下载行为 ) 现在下载带宽为12m 一秒的样子 这个时候ui已经开始了卡断
7.我再次模拟中断下载后ui事件开始触发2021-03-30 23:52
-
6***@qq.com (作者)
回复 DCloud_UNI_GSQ: 可能是文件太小了吧 下载太快了 用大文件进行您看下 另外我这边新建一个测试项目 等下打包给你们
2021-03-31 11:20
-
6***@qq.com (作者)
回复 DCloud_UNI_GSQ: 我这边新建的测试项目 发现问题还是有的哦 我上传后您这边看下 (另外有一点 如果下载速度只有几百kb 问题不会浮现 我这台设备下载 8.5m/s 左右的样子 就卡了)
2021-03-31 11:35
-
6***@qq.com (作者)
回复 DCloud_UNI_GSQ: 项目已上传 另外也独立录制了视频在文件夹里面 https://ask.dcloud.net.cn/file/download/file_name-5LiL6L295Y2h6aG/5rWL6K+VLnppcA==__url-Ly9pbWctY2RuLXFpbml1LmRjbG91ZC5uZXQuY24vdXBsb2Fkcy9hbnN3ZXIvMjAyMTAzMzEvY2JhOWQ0NWY1MDY2OTQ5ZmNmNGE0MGFmYWE1YTBmMzA=
2021-03-31 11:46
-
6***@qq.com (作者)
回复 DCloud_UNI_GSQ: 另外换了一台荣耀 跑我这个上传的这个项目 (也出现了事件延迟 但是没有我那个小米10严重) 因为这台设备的下载速度达不到我那个小米的速度 我意思是如果我这边提供的下载地址在你们当地下载速度跑不到10m/s 一秒的速度的话 您这边可以单独找一个文件测试下
2021-03-31 12:03