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; } }) }, |