uploadFile 卡住无响应
代码和截图如下所示,
环境:安卓7.0
现象:
1. 执行uploadVideo方法就会卡住(主要表现为点击屏幕无反应,loading不转了),百分百在我手机上重现;
2. 当我注释掉uploadTask.onProgressUpdate时,虽不会出现但会上传失败。
3. 只在上传较大文件(100M左右)才会出现,十几M会卡一小会(零点几秒)且很快就好了。
一开始我以为是频繁的setData所致,但是应该不会。我是上传一个100M的视频文件,且在进度每增加20%时才会setData一次(大约好几秒才setData),并不会太频繁。
uploadVideo: function (successCallback) { let failCallback = () => { if (wx.hideLoading) { wx.hideLoading() } common.doAnimation('error', '视频上传失败,请删除视频后重新提交', this); } let uploadTask = wx.uploadFile({ url: inter.imp().video_upload, filePath: this.data.videoURL[0], name: 'file', method: 'POST', header: { "apsid": userProfile.apsid }, success: (res) => { let data = JSON.parse(res.data); if (data.err_code == 0) { this.data.postVideo.push(data.data.video_name) isNewVideo = false; successCallback() } else { failCallback() } }, fail: () => { failCallback() } }); let initUploadedPercent = 20; uploadTask && uploadTask.onProgressUpdate((res) => { console.log('上传进度', res.progress) console.log('已经上传的数据长度', res.totalBytesSent) console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend) if (res.progress >= initUploadedPercent) { this.setData({ uploadedPercent: initUploadedPercent }) initUploadedPercent += 20; } }) }, |
