问题描述:
使用wx.downloadFile和wx.saveFile在真机调试和体验版没问题,线上却下载失败:
先看看我的代码
index.wxml
导出
index.js
// 下载导出数据
downloadFile() {
wx.showLoading({
title: "加载中",
});
wx.downloadFile({
url: 'url',
header: {},
success(res) {
console.log(res);
if (res.statusCode === 200) {
let savePath = wx.env.USER_DATA_PATH + Date.now() + '.xls';
wx.getFileSystemManager().saveFile({
//下载成功后保存到本地
tempFilePath: res.tempFilePath,
filePath: savePath,
fileType:'xls', // 比如.pdf,.xlsx,.jpg,.png等类型
success(res) {
wx.hideLoading();
console.log(res);
let savePath = res.savedFilePath;
wx.showModal({
title: "下载成功",
content: "是否打开?",
confirmText: "打开",
success(res) {
if (res.confirm) {
wx.openDocument({
//打开
filePath: savePath,
showMenu: true,
success(res) {
console.log(res);
},
});
} else if (res.cancel) {}
},
});
},
fail(err) {
wx.hideLoading();
wx.showModal({
title: '提示',
content: "文件下载失败"+err,
showCancel: false, //是否显示取消按钮
success: function (result) {}
})
},
});
} else {
wx.hideLoading();
wx.showModal({
title: '提示',
content: "文件下载失败",
showCancel: false, //是否显示取消按钮
success: function (result) {}
})
}
},
fail(err) {
wx.hideLoading();
wx.showModal({
title: '提示',
content: "文件下载失败",
showCancel: false, //是否显示取消按钮
success: function (result) {}
})
}
});
},
# 原因分析和解决问题:
我在电脑和真机调试都能下载文件且打开预览,但是拿手机运行线上版本就不行了,一直下载失败。多翻找寻发现,还需要登录小程序去填写配置域名
【开发】-【开发管理】-【开发设置】-【服务器域名】
|