uni-app Hbuilder X 3.1.4 & 3.1.6 downloadTask.onProgressUpdate()无法进入回调

uni-app Hbuilder X 3.1.4 & 3.1.6 downloadTask.onProgressUpdate()无法进入回调

开发环境 版本号 项目创建方式
Windows 1909 HBuilderX

示例代码:

const downloadTask = uni.downloadFile({  
    url: `${this.$baseUrl}/oss/attach/downloadByType/REMS_ANDROID_APP`,  
    success: ({tempFilePath}) => {  
        plus.runtime.install(plus.io.convertLocalFileSystemURL(tempFilePath), {}, {}, error => {  
            this.$message(null, '安装失败', this)  
        })  
    },  
    complete: () => {}  
})  
downloadTask.onProgressUpdate(function(res) {  
    // 无法进入callback  
    console.log(res.progress)  
})  

操作步骤:

Hbuilder X 3.1.4 & 3.1.6 downloadTask.onProgressUpdate()无法进入回调

预期结果:

Hbuilder X 3.1.4 & 3.1.6 downloadTask.onProgressUpdate()无法进入回调

实际结果:

Hbuilder X 3.1.4 & 3.1.6 downloadTask.onProgressUpdate()无法进入回调

bug描述:

Hbuilder X 3.1.4 & 3.1.6 downloadTask.onProgressUpdate()无法进入回调


更多关于uni-app Hbuilder X 3.1.4 & 3.1.6 downloadTask.onProgressUpdate()无法进入回调的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

使用旧版本测试是否正常?
其他机型是否正常?

更多关于uni-app Hbuilder X 3.1.4 & 3.1.6 downloadTask.onProgressUpdate()无法进入回调的实战教程也可以访问 https://www.itying.com/category-93-b0.html


华为P30 Android 11也是这样, 无法进入回调

回复 5***@qq.com: 都是文件正常下载,但是不进入回调吗?

回复 DCloud_UNI_GSQ: 是的,获取不了下载进度

回复 5***@qq.com: 旧版本的 HBuilderX 有这问题吗?

回复 DCloud_UNI_GSQ: 2.7.14 同样的问题

回复 5***@qq.com: 使用不同的下载链接测试看看

这是一个已知的HBuilderX 3.1.4-3.1.6版本中的兼容性问题。在Android平台上,downloadTask.onProgressUpdate()回调确实存在无法触发的情况。

建议的解决方案:

  1. 升级到HBuilderX 3.1.7或更高版本,该问题在后续版本中已修复

  2. 如果暂时无法升级,可以使用替代方案:

const downloadTask = uni.downloadFile({  
    url: `${this.$baseUrl}/oss/attach/downloadByType/REMS_ANDROID_APP`,
    success: ({tempFilePath}) => {  
        plus.runtime.install(plus.io.convertLocalFileSystemURL(tempFilePath), {}, {}, error => {  
            this.$message(null, '安装失败', this)  
        })  
    },
    fail: (err) => {
        console.error('下载失败:', err)
    },
    complete: () => {}  
})

// 添加超时检测
setTimeout(() => {
    // 检查下载状态
}, 1000)
  1. 或者使用plus.downloader创建下载任务,该API在进度回调方面更稳定:
const dtask = plus.downloader.createDownload(url, {
    filename: '_downloads/'
}, function(d, status) {
    if(status == 200) {
        plus.runtime.install(d.filename);
    }
});
dtask.addEventListener("statechanged", onStateChanged, false);
dtask.start();
回到顶部