嵌套在dart app里面的前端项目
1.前端调下载接口 ->后端返回 application/pdf格式的文件 ->前端将pdf处理为blob ->blob转base64 ->调用dart app的 sdk saveFile ->保存成功
async download() {
try {
// 调用封装的 downloadEContract 方法获取 Blob 数据
const response = await downloadEContract({ ordederNo: this.eContractOrderNo })
//api调用返回的文件格式是pdf 在axios中已经配置responseType:blob axios已经做了转换?
// 使用 FileReader 将 Blob 转换为 Base64
const reader = new FileReader()
const prom = new Promise((resolve, reject) => {
reader.onloadend = () => resolve(reader.result)
reader.onerror = () => reject(reader.error)
reader.readAsDataURL(response)
})
// 等待 Base64 数据
const base64Data = await prom
// 调用 JieanSdk.saveFile 方法保存文件
const res = await window.JieanSdk.saveFile({
fileName: '电子合同.pdf',
content: base64Data
})
if (res.code === 200) {
window.JieanSdk.showSnackBar({ message: `下载成功,文件保存至${res.result}` })
} else {
window.JieanSdk.showSnackBar({ message: '下载失败' })
}
console.log('保存结果: ', JSON.stringify(res))
} catch (error) {
console.error('失败', error)
}
},