- 发布:2021-10-18 16:00
- 更新:2021-10-18 18:34
- 阅读:1289
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 10 专业版 20H2
HBuilderX类型: 正式
HBuilderX版本号: 3.2.3
手机系统: 全部
手机厂商: 华为
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
测试过的手机:
示例代码:
<template>
<view class="content">
<image class="logo" src="/static/logo.png"></image>
<view class="text-area">
<text class="title">{{title}}</text>
<text>({{downloadedSize}}/{{packageFileSize}}M)</text>
</view>
</view>
</template>
<script>
let downloadTask = null
export default {
data() {
return {
title: 'Hello',
downloadedSize: 0,
packageFileSize: 0,
tempFilePath: ''
}
},
onLoad() {
this.downloadPackage()
},
methods: {
downloadPackage() {
//下载包
downloadTask = uni.downloadFile({
// 无法监听到下载进度
// url: 'https://fil.xbsjipfs.com/down/6666.wgt',
// 可以监听到下载进度
// url: 'https://fil.xbsjipfs.com/xbsj.apk',
// 可以监听到下载进度(升级中心云函数上传升级包后的路径)
url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-4f945785-60e1-483a-9f14-12e21fe2046c/36ce77aa-93a8-4fd7-ad34-c9583cebcc02.wgt',
success: res => {
console.log(res);
if (res.statusCode == 200) {
console.log(9999);
this.downloadSuccess = true;
this.tempFilePath = res.tempFilePath
// 强制更新,直接安装
if (this.is_mandatory) {
this.installPackage();
}
}
},
fail: () => {
console.log(99999);
// this.downLoadPercent = 0
this.downloadedSize = 0
this.packageFileSize = 0
downloadTask = null;
}
});
downloadTask.onProgressUpdate(res => {
console.log(JSON.stringify(res), '进度条');
// this.downLoadPercent = res.progress;
this.downloadedSize = (res.totalBytesWritten / Math.pow(1024, 2)).toFixed(2);
this.packageFileSize = (res.totalBytesExpectedToWrite / Math.pow(1024, 2)).toFixed(2);
});
},
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
}
.text-area {
display: flex;
justify-content: center;
}
.title {
font-size: 36rpx;
color: #8f8f94;
}
</style>
<template>
<view class="content">
<image class="logo" src="/static/logo.png"></image>
<view class="text-area">
<text class="title">{{title}}</text>
<text>({{downloadedSize}}/{{packageFileSize}}M)</text>
</view>
</view>
</template>
<script>
let downloadTask = null
export default {
data() {
return {
title: 'Hello',
downloadedSize: 0,
packageFileSize: 0,
tempFilePath: ''
}
},
onLoad() {
this.downloadPackage()
},
methods: {
downloadPackage() {
//下载包
downloadTask = uni.downloadFile({
// 无法监听到下载进度
// url: 'https://fil.xbsjipfs.com/down/6666.wgt',
// 可以监听到下载进度
// url: 'https://fil.xbsjipfs.com/xbsj.apk',
// 可以监听到下载进度(升级中心云函数上传升级包后的路径)
url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-4f945785-60e1-483a-9f14-12e21fe2046c/36ce77aa-93a8-4fd7-ad34-c9583cebcc02.wgt',
success: res => {
console.log(res);
if (res.statusCode == 200) {
console.log(9999);
this.downloadSuccess = true;
this.tempFilePath = res.tempFilePath
// 强制更新,直接安装
if (this.is_mandatory) {
this.installPackage();
}
}
},
fail: () => {
console.log(99999);
// this.downLoadPercent = 0
this.downloadedSize = 0
this.packageFileSize = 0
downloadTask = null;
}
});
downloadTask.onProgressUpdate(res => {
console.log(JSON.stringify(res), '进度条');
// this.downLoadPercent = res.progress;
this.downloadedSize = (res.totalBytesWritten / Math.pow(1024, 2)).toFixed(2);
this.packageFileSize = (res.totalBytesExpectedToWrite / Math.pow(1024, 2)).toFixed(2);
});
},
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
}
.text-area {
display: flex;
justify-content: center;
}
.title {
font-size: 36rpx;
color: #8f8f94;
}
</style>
操作步骤:
下载测试压缩包或者复制代码示例
下载测试压缩包或者复制代码示例
预期结果:
下载文件监听到自定义的wgt包下载过程
下载文件监听到自定义的wgt包下载过程
实际结果:
三种地址都可以正常下载到文件,但是自定义的wgt包下载路径在下载时无法监听到下载进度
三种地址都可以正常下载到文件,但是自定义的wgt包下载路径在下载时无法监听到下载进度
1***@qq.com (作者)
大小也试过一个近5M的wgt包,一样的,下载可以下载只是监测不到下载进度,还有就是同一个文件如果把后缀名改为apk就可以检测到了
2021-10-18 18:38
1***@qq.com (作者)
辛苦好哥哥们帮我看看这个问题,官方的升级中心因为再国外无法访问到的原因现在要换升级的接口
2021-10-18 18:40
DCloud_Android_ST
回复 1***@qq.com: 进度需要获取到文件大小 我测试了一下发现Content-Length为空你们配置一下再试试
2021-10-18 18:44
1***@qq.com (作者)
回复 DCloud_Android_ST: 问题解决了,就是这个content-length的原因,可能是wgt这种不常规的文件服务器内置没有配置.在服务器里单独配置后可以了.谢谢
2021-10-19 13:54