更新记录
1.0.0(2026-09-24) 下载此版本
zxj-pdf-preview 是一个 uni-app App 原生文件预览插件,专门处理“接口没有给下载 URL,只给了 PDF Base64 或 PDF 文件流”的情况。它负责把数据安全写入应用缓存,再交给系统能力打开,业务页面只需要传 Base64、文件名和是否显示应用选择菜单。
平台兼容性
uni-app(5.0)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | √ | - | - | √ | - | √ | √ | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
PDF 预览器|Base64 文件流打开与分享
插件 ID:zxj-pdf-preview
PDF 文件流预览 UTS 插件,适用于接口返回 Base64 PDF 二进制流的 App 端预览场景。
zxj-pdf-preview 是一个 uni-app App 原生文件预览插件,专门处理“接口没有给下载 URL,只给了 PDF Base64 或 PDF 文件流”的情况。它负责把数据安全写入应用缓存,再交给系统能力打开,业务页面只需要传 Base64、文件名和是否显示应用选择菜单。
检索关键词: uni-app PDF 预览、UTS PDF 插件、Base64 PDF 打开、PDF 文件流预览、Android FileProvider、Android Intent 打开 PDF、iOS PDF 分享、uni-app 文件预览、报告预览、合同预览、电子发票 PDF。
适用场景
- 企业报告、尽调报告、合同、账单、发票等 API 返回的 PDF Base64 数据。
- 希望 Android 调起 WPS、系统阅读器或其他 PDF 应用查看文件的项目。
- 希望 iOS 用户把临时 PDF 存储到文件、分享或交给兼容 App 打开的项目。
- 不希望业务层维护 Android
FileProvider、MIME 类型、临时文件路径的 uni-app 项目。
本插件不是 PDF 内容渲染组件:它不会在页面内把 PDF 逐页画出来,也不提供标注、搜索、编辑能力。需要内嵌阅读器时,应接入 WebView/PDF.js 或专业文档 SDK。
功能
- 接收 Base64 PDF 文件流(NO_WRAP,不含
data:前缀) - 写入应用私有缓存目录
- Android:通过
FileProvider+ 系统 Intent 打开 PDF 阅读器 - iOS:调起系统分享面板,可交给支持 PDF 的应用处理
支持 uni-app Vue2、Vue3 的 Android/iOS App 构建。H5、小程序端请使用 uni.openDocument、浏览器新窗口或对应平台的文件 API。
工作方式与隐私边界
- 接收纯 Base64 PDF 字符串,解码到 App 的私有缓存目录。
- Android 通过
FileProvider生成受控内容 URI,并以application/pdfMIME 类型发起系统 Intent。 - iOS 弹出系统分享面板,用户自行决定存储或使用哪个应用打开。
- 插件不上传 PDF、不解析文档正文、不读取用户的公共文件目录。
临时文件用于交给系统应用读取。业务侧如有更严格的文档生命周期要求,可在使用完成后自行清理对应缓存目录。
使用方法
1. 直接调用 UTS API
import { previewPdfFromBase64 } from '@/uni_modules/zxj-pdf-preview'
// base64 为 PDF 二进制 NO_WRAP Base64
previewPdfFromBase64({
base64: pdfBase64,
fileName: '报告名称.pdf',
showMenu: true,
success: (res) => {
console.log('本地路径', res.filePath)
},
fail: (err) => {
uni.showToast({ title: err.errMsg, icon: 'none' })
},
})
错误码
| 错误码 | 说明 |
|---|---|
| 9020001 | PDF Base64 数据为空 |
| 9020002 | PDF Base64 解码失败 |
| 9020003 | 写入本地 PDF 文件失败 |
| 9020004 | 打开 PDF 预览失败 |
| 9020005 | Android 未找到可处理 PDF 的应用 |
注意
- 需使用 HBuilderX 4.08+ 编译自定义基座或云打包后才能在 App 端生效
- Android 若提示无可用应用,请安装 WPS 或系统 PDF 阅读器
- iOS 会打开系统分享面板;用户可选择“存储到文件”或其他支持 PDF 的应用
base64必须为 PDF 的纯 Base64,不要传入data:application/pdf;base64,前缀。fileName建议以.pdf结尾,例如annual-report.pdf;这能帮助外部应用识别文件。
常见问题
Android 为什么提示没有可用应用?
插件只负责把 PDF 安全交给系统,不内置 PDF 阅读器。请在设备安装 WPS、Adobe Acrobat 或其他支持 PDF 的应用后重试。
接口返回的是 ArrayBuffer,能直接调用吗?
不能直接传。请先用 uni.arrayBufferToBase64(arrayBuffer) 转成 Base64,再传给 previewPdfFromBase64。
showMenu 有什么区别?
设为 true 会显示“选择应用打开”的系统菜单,便于用户选择 WPS 或其他阅读器;设为 false 则直接交给系统默认处理应用。

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 261
赞赏 0
下载 12638271
赞赏 1950
赞赏
京公网安备:11010802035340号