在使用 uploader 进行上传文件时,监听 statechanged 事件获取
uploadedSize: 已完成上传数据的大小
totalSize: 上传数据的总大小
,利用这俩个参数来做进度条显示,然而只有iOS里面正常,在安卓里面 uploadedSize 参数会立即等于 totalSize,其实还没有上传完成的,属于BUG,多次打文件上传重现了BUG。iOS则正常。
重现步骤
StateChanged(upload,status) {
var percentComplete = Math.round((upload.uploadedSize/upload.totalSize)100);
$('#jindutiao').css('width', Math.round((upload.uploadedSize/upload.totalSize)100)+'px');
$('.jinduNum').children('span').html(Math.round((upload.uploadedSize/upload.totalSize)*100));
$('.jinduMain').css('display', 'block');
};
mytask.addEventListener("StateChanged", StateChanged, false);
[结果]
在安卓里面 percentComplete 会立刻等于100;
[期望]
随着真实上传进度而显示进度给用户看。
App运行环境说明
[Android版本号]
华为荣誉V9
型号:DUK-AL20
版本号:DUK-AL20 8.0.0.356(C00GT)
EMUI:8.0.0
Android:8.0.0
[模拟器型号]
HB最新版本基座测试
在线云打包测试
7 个回复
全栈 (作者) - 90后全栈男
这个BUG没人管吗?目前用iOS和安卓测试,就安卓异常;在HB内打印的数据没什么问题,就是在安卓APP内 upload.uploadedSize/upload.totalSize 立刻等于1;
全栈 (作者) - 90后全栈男
这个很容易确认的BUG没人管吗?
DCloud_App_Array
目前Android平台提交的进度不是真实进度(只是提交给传输层的进度),暂时还不支持获取真实传输数据进度。
全栈 (作者)
安卓的浏览器(使用AJAX)都可以获取真实上传进度哦!怎么用了原生的 uploader 就不行了!这个真是让人无语了。。。
2018-11-28 16:54
全栈 (作者) - 90后全栈男
早知道这样,我还用什么原生的 uploader ,还不如实实在在的用 AJAX 上传,晕了。。。。
1***@qq.com
同样遇到这种情况
1***@qq.com - 95后前端菜鸟
我的是ios正常,安卓的报400错误!
1***@qq.com
请问你现在是怎么做的?
全栈 (作者)
我是手写一个上传组件,使用js的ajax
2019-10-10 11:48