downloadTask = uni.downloadFile({
url: this.url,
success: res => {
if (res.statusCode == 200) {
this.downloadSuccess = true;
this.tempFilePath = res.tempFilePath
// 强制更新,直接安装
if (this.is_mandatory) {
this.installPackage();
}
}
},
complete: () => {
this.downloading = false;
this.downLoadPercent = 0
this.downloadedSize = 0
this.packageFileSize = 0
downloadTask = null;
}
});
- 发布:2023-08-17 23:01
- 更新:2023-08-21 10:56
- 阅读:848
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
HBuilderX类型: 正式
HBuilderX版本号: 3.8.12
手机系统: Android
手机系统版本号: Android 9.0
手机厂商: 小米
手机机型: mi8
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
downloadTask = uni.downloadFile({
url: this.url,
success: res => {
if (res.statusCode == 200) {
this.downloadSuccess = true;
this.tempFilePath = res.tempFilePath
// 强制更新,直接安装
if (this.is_mandatory) {
this.installPackage();
}
}
},
complete: () => {
this.downloading = false;
this.downLoadPercent = 0
this.downloadedSize = 0
this.packageFileSize = 0
downloadTask = null;
}
});
downloadTask = uni.downloadFile({
url: this.url,
success: res => {
if (res.statusCode == 200) {
this.downloadSuccess = true;
this.tempFilePath = res.tempFilePath
// 强制更新,直接安装
if (this.is_mandatory) {
this.installPackage();
}
}
},
complete: () => {
this.downloading = false;
this.downLoadPercent = 0
this.downloadedSize = 0
this.packageFileSize = 0
downloadTask = null;
}
});
预期结果:
_doc/uniapp_temp_1691737727580/download/1691737742643.wgt
_doc/uniapp_temp_1691737727580/download/1691737742643.wgt
实际结果:
_doc/uniapp_temp_1691737727580/download/1691737742643
_doc/uniapp_temp_1691737727580/download/1691737742643
bug描述:
用官方的升级中心做热更下载完安装时提示WGT/WGTU文件格式错误,查看源码发现uni.downloadFile下载wgt文件后保存的临时文件没有后缀名,文件名是个时间戳
_doc/uniapp_temp_1691737727580/download/1691737742643
wgt包是HBuilderX做的,wgt包上传uniCloud云存储链接下载的,是只有我出现这个问题吗?换了一台华为手机也这样
上面是官方的升级中心的下载源码
这是用 Helluni 下载API的demo 测试的(版本:3.8.12.20230817),你提供给的链接是无法下载的。如果你说其他文件下载没问题,那你应该要检查一下你的链接是否是能正常访问的。
-
s***@sina.com (作者)
https://mp-4dcf3228-7251-4156-9209-2b6320618f0b.cdn.bspapp.com/UNI315A8C6.wgt
2023-08-18 14:13
不知道你是不是这个问题,至少你提供的链接下载是有问题
-
s***@sina.com (作者)
https://mp-4dcf3228-7251-4156-9209-2b6320618f0b.cdn.bspapp.com/UNI315A8C6.wgt,用这个试下,之前的评论发出来的链接文件名是有下划线的,不知道为啥评论发出来下划线没了
2023-08-18 14:24
这个问题后续会修复,临时解决方案,在 download 成功后,添加如下代码:
uni.downloadFile({
url: '',
success(res) {
// success 回调中包含的代码就是你要添加的
plus.io.resolveLocalFileSystemURL(res.tempFilePath, function(entry) {
entry.getParent((parent) => {
entry.copyTo(parent, `new_wgt_${Date.now()}.wgt`, (res) => {
console.log('copyTo success res: ', res);
}, (e) => {
console.log('copyTo fail e: ', JSON.stringify(e));
})
}, (e) => {
console.log('getParent fail e: ', JSON.stringify(e));
})
}, function(e) {
console.log("Resolve file URL failed: " + e.message);
});
},
fail(e) {
console.log('e: ', e);
}
})
这个代码的作用是用来在下载的临时目录中重新创建一个 wgt 的文件,你可以添加后试试看。
注意
在安装的时候要使用新创建的 wgt 文件名,注意安装路径
s***@sina.com (作者)
https://mp-4dcf3228-7251-4156-9209-2b6320618f0b.cdn.bspapp.com/UNI315A8C6.wgt
2023-08-18 12:26
s***@sina.com (作者)
下载其它类型文件不会,比如apk,zip等都有后缀名,就wgt没有
2023-08-18 12:27
余声
回复 s***@sina.com: 你这个资源是不是过期了,访问不了,还是访问上限了。有试过换别的链接嘛。
2023-08-18 13:48