this.downloadObj = plus.downloader.createDownload(win.apiUrl + 'api/webApi/DownloadFile/', {
method: 'POST',
data: opts.dataPath + ',' + settings.userid + ',' + settings.token + ',JuChatPhone,1.0.0.1',
filename: this.getSavePath(opts.dataPath, opts.fileName)
}, function(d, status) {
// 下载完成
if (status == 200) {
// console.log("Download success: " + d.filename);
opts.succee(d)
} else {
// console.log("Download failed: " + status);
opts.failed(status)
}
});
this.downloadObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');// 设置POST请求提交的数据类型为JSON字符串
this.downloadObj.start()

- 发布:2021-12-02 14:33
- 更新:2021-12-08 12:19
- 阅读:306
产品分类: HTML5+
HBuilderX版本号: 3.3.0
手机系统: iOS
手机系统版本号: iOS 14
手机厂商: 苹果
手机机型: iphone xr
打包方式: 云端
示例代码:
操作步骤:
this.downloadObj = plus.downloader.createDownload(win.apiUrl + 'api/webApi/DownloadFile/', {
method: 'POST',
data: opts.dataPath + ',' + settings.userid + ',' + settings.token + ',JuChatPhone,1.0.0.1',
filename: this.getSavePath(opts.dataPath, opts.fileName)
}, function(d, status) {
// 下载完成
if (status == 200) {
// console.log("Download success: " + d.filename);
opts.succee(d)
} else {
// console.log("Download failed: " + status);
opts.failed(status)
}
});
this.downloadObj.start()
this.downloadObj = plus.downloader.createDownload(win.apiUrl + 'api/webApi/DownloadFile/', {
method: 'POST',
data: opts.dataPath + ',' + settings.userid + ',' + settings.token + ',JuChatPhone,1.0.0.1',
filename: this.getSavePath(opts.dataPath, opts.fileName)
}, function(d, status) {
// 下载完成
if (status == 200) {
// console.log("Download success: " + d.filename);
opts.succee(d)
} else {
// console.log("Download failed: " + status);
opts.failed(status)
}
});
this.downloadObj.start()
预期结果:
下载成功,打开文件成功
下载成功,打开文件成功
实际结果:
ios 打开文件后出现“分享”,经查所下载的文件为 74b (问题容量)
ios 打开文件后出现“分享”,经查所下载的文件为 74b (问题容量)
bug描述:
ios 用 plus.downloader.createDownload post 方式 下载文件成功,但不完整,mp3 不能播放,doc 等不能打开..,adnroid 机没问题。
后端是 c# webapi。
经查,还要在 createDownload 下 start 之前设置请求头才行....
矩信 (作者)
是,ios 在 start 之前设置一下请求头就可以了:
downloader.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
android 就不用设置,设置了也没问题。
2021-12-10 15:28