uni-app 文件下载问题:急!急!急!在下载大文件或网络带宽不做限流情况下,安卓app出现无响应
uni-app 文件下载问题:急!急!急!在下载大文件或网络带宽不做限流情况下,安卓app出现无响应
我遇到这种问题是UI刷新太快
显示下载进度的百分比因为下载太快刷新也非常快,直接卡死
后来改成0.1秒刷新一次UI就没这个问题了
纯下载不刷新UI的话,再快都没卡过
更多关于uni-app 文件下载问题:急!急!急!在下载大文件或网络带宽不做限流情况下,安卓app出现无响应的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你说的这个我有考虑过 也经过了代码实验 结果是没有什么效果的 就算不对UI做刷新进程也还是阻塞状态。我是在nvue。昨天测试的时候文件大小700m
我用plus.downloader没卡,uni.download没试过。你用哪个?
回复 MonikaCeng: 我试一下 plus.downloader 刚才尝试了用uni.download进行分片下载 app还是会卡 但是app能切换页面(但是有个问题:因为多次http请求 资源目标直接限流了)
回复 6***@qq.com: 那只能等官方解决了。你能否留段代码,包括用于下载的资源,或者你自己传个100M的到云存储用于测试
回复 MonikaCeng: mallimage.wozokeji.com/卡.mp4 你看有多卡
回复 6***@qq.com: 回复 coding3: plus.downloader.createDownload(url) plus.downloader.startAll() console.log(‘下载开始’) // dow.start(url)
回复 6***@qq.com: 我是
回复 MonikaCeng: 原理上一样的 一个是下载单文件 一个是下载多文件 我给你个地址 你测试下看看卡不卡
回复 MonikaCeng: 私信给你了
看到你在其他帖子的邀请,我顺着爬了过来,即将开始排查
此贴作为此问题的集中反馈和处理贴,有其他类似的都可以链接在一起。
等你们处理好 我已经纠结好多天了
回复 6***@qq.com: 你的链接我还没空测,你让官方的先测测看
怎么样 BUG确认了吗?
回复 MonikaCeng: 就等官方进行处理啦
目前使用两个个低端安卓机器(nexus4、魅族 8x),测试了 vue 和 nvue 均未复现,是网速不够吗?
测试地址使用的是:https://download1.dcloud.net.cn/download/HBuilderX.3.1.6.20210326.full.zip
what? 我等下给你录制视频 你应该就懂了。我也用你这个地址进行下载测试 (我想表达的是:在下载过程ui会阻塞。而不是下载不成功哦)
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事件开始触发
请官方尽快处理
回复 6***@qq.com: 视频之前已经看过一遍了,模拟测试未复现,所以询问一下是不是哪个条件没模拟对
回复 6***@qq.com: 你想表达的意思早就看明白了,是复现不了,不是看不懂你表达的意思
回复 DCloud_UNI_GSQ: 可能是文件太小了吧 下载太快了 用大文件进行您看下 另外我这边新建一个测试项目 等下打包给你们
回复 DCloud_UNI_GSQ: 我这边新建的测试项目 发现问题还是有的哦 我上传后您这边看下 (另外有一点 如果下载速度只有几百kb 问题不会浮现 我这台设备下载 8.5m/s 左右的样子 就卡了)
回复 DCloud_UNI_GSQ: 另外换了一台荣耀 跑我这个上传的这个项目 (也出现了事件延迟 但是没有我那个小米10严重) 因为这台设备的下载速度达不到我那个小米的速度 我意思是如果我这边提供的下载地址在你们当地下载速度跑不到10m/s 一秒的速度的话 您这边可以单独找一个文件测试下
把测试拿出去祭天
此问题HBuilderX3.1.10已经修复。
在uni-app中处理大文件下载时,安卓应用出现无响应通常是由于主线程被长时间阻塞导致的。以下是几个关键解决方案:
- 使用plus.downloader.createDownload创建后台下载任务:
- 通过
plus.downloader模块创建独立下载任务,避免占用主线程 - 设置
retryInterval参数控制重试间隔 - 示例代码:
const dtask = plus.downloader.createDownload(url, { filename: '_doc/download/' }, (d, status) => { if (status === 200) { console.log('下载完成'); } else { console.log('下载失败'); } }); dtask.start(); - 通过


