时间: 2023-05-16 【学无止境】 阅读量:共1079人围观
简介 后台生成一个二进制流,操作过程中遇到的一些坑,首先是我用网上常规的操作wx.downloadFile,wx.openDocument,开发工具显示正常,真机可能会走到‘打开文档失败’;真机调试发现是 filePath= wx.env.USER_DATA_PATH + '/' + ‘xxx.pdf’,报错没有修改名字的权限
实现代码
wx.request({
url: '后台地址,获取二进制流',
method: 'POST',
header: {
"content-type": "application/json",
},
responseType: "arraybuffer", //注意这里的responseType
success: (result) => {
console.log("下载成功!", result);
var fileManager = wx.getFileSystemManager();
var FilePath = wx.env.USER_DATA_PATH + '/' + '文件名字'+'.pdf';
//这里同样可能有问题 我这个打开后显示文档损坏 参考上面的方案解决
fileManager.writeFile({
data: result.data,
filePath: FilePath,
showMenu: true, // 显示右上角菜单
encoding: "binary", //编码方式
success: res => {
console.log('编码格式');
wx.openDocument({ //成功之后直接打开
filePath: FilePath,
showMenu:true,
fileType: "pdf", // 需要指定文件格式,不然会提示文件无法打开
success: result => {
console.log("打开文档成功");
},
fail: err => {
console.log("打开文档失败", err);
}
});
},
fail: res => {
wx.showToast({
title: '导出失败!',
icon: 'none',
duration: 2000,
})
console.log(res);
}
})
},
fail(err) {
console.log(err)
}
})