全栈
全栈
  • 发布:2018-11-27 14:22
  • 更新:2019-01-25 17:09
  • 阅读:1581

【报Bug】监听上传进度(已上传大小)时,安卓异常,iOS正常。百分百重现

分类:HTML5+

在使用 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最新版本基座测试
在线云打包测试

2018-11-27 14:22 负责人:无 分享
已邀请:
全栈

全栈 (作者) - 90后全栈男

这个BUG没人管吗?目前用iOS和安卓测试,就安卓异常;在HB内打印的数据没什么问题,就是在安卓APP内 upload.uploadedSize/upload.totalSize 立刻等于1;

全栈

全栈 (作者) - 90后全栈男

这个很容易确认的BUG没人管吗?

DCloud_App_Array

DCloud_App_Array

目前Android平台提交的进度不是真实进度(只是提交给传输层的进度),暂时还不支持获取真实传输数据进度。

  • 全栈 (作者)

    安卓的浏览器(使用AJAX)都可以获取真实上传进度哦!怎么用了原生的 uploader 就不行了!这个真是让人无语了。。。

    2018-11-28 16:54

全栈

全栈 (作者) - 90后全栈男

早知道这样,我还用什么原生的 uploader ,还不如实实在在的用 AJAX 上传,晕了。。。。

1***@qq.com

1***@qq.com

同样遇到这种情况

1***@qq.com

1***@qq.com - 95后前端菜鸟

我的是ios正常,安卓的报400错误!

1***@qq.com

1***@qq.com

请问你现在是怎么做的?

  • 全栈 (作者)

    我是手写一个上传组件,使用js的ajax

    2019-10-10 11:48

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