小程序实现预览pdf并导出
- 一、前言
- 二、需要的wx api
- 三、完整代码
一、前言
小程序没办法直接导出pdf或一些文档,只能借助api先将文件下载下来并打开,再让用户手动去保存。之前做“小程序当前页面截图转pdf导出”功能的时候,小程序好像也无法实现。所以要打开文件,都让后端去做吧
,要么给前端一个文件地址,要么返回二进制文件流,这样小程序就能打开文件了。
二、需要的wx api
- downloadFile(下载文件)
- openDocument(打开文件)
showMenu设置为true才能支持用户把文件下载到本地
三、完整代码
const preViewPdf = (url) => { // 预览pdfuni.showLoading({title: '加载中',mask: true})return new Promise((resolve, reject) => {uni.downloadFile({url: baseUrl + url,header: {'Authorization': store.state.token},success: (res) => {if (res.statusCode === 200) {uni.openDocument({filePath: res.tempFilePath,showMenu: true, //显示右上角三个点,支持手动保存到本地success: (res) => {uni.hideLoading()resolve(true)},fail: (err) => {uni.hideLoading()resolve(true)uni.showToast({title: '打开失败',icon: 'none'})}})}},fail: (err) => {uni.hideLoading()uni.showToast({title: '下载失败',icon: 'none'})}})})
}