之前没在微信小程序上下载过dpf,以为可麻烦,研究了好久,现在整理一下:
因为后端给的一个dpf链接是内网链接,所以我叫后台把文件转成了base64给我
async showPDF(picData,type){
if(picData.EinUrlOutHos){
// #ifdef MP-WEIXIN
const res=await this.$http({
url: '/Query/GetPdfToBase64?pdfUrl='+encodeURIComponent(picData.EinUrlInHos),
method: 'POST',
timeout: 30000
}).catch(e=>{
console.log(e)
})
if(res.Code===0){
console.log("进来了")
let pdfBase64=`data:application/pdf;base64,${res.Data}`
let fs=wx.getFileSystemManager();
let fileName=''
let times=new Date().getTime();
fs.writeFile({
filePath:wx.env.USER_DATA_PATH+'/'+times+'.pdf',
data:wx.base64ToArrayBuffer(res.Data.replace(/[\r\n]/g,'')),
success:res=>{
let ll=wx.env.USER_DATA_PATH+'/'+times+'.pdf'
wx.openDocument({
fileType:'pdf',
showMenu:true,
filePath:wx.env.USER_DATA_PATH+'/'+times+'.pdf',
success:function(res){
console.log('打开PDF成功')
console.log(res)
},
fail(err){
console.log(err)
}
});
}
});
}
// #endif
}
}
最重要的是showMenu:true,设置这个后在打开的pdf页面右上角会有下载pdf的按钮。