uniapp 如何显示pdf文件
在uniapp中如何实现PDF文件的显示?目前需要在APP内预览PDF文档,尝试过使用web-view加载在线PDF链接,但在iOS端无法正常显示。有没有其他可靠的解决方案或插件推荐?最好能支持本地PDF文件和网络PDF的加载,并保持较好的兼容性。
2 回复
uniapp中显示PDF文件,可以使用web-view组件加载在线PDF链接,或使用pdf.js库在H5端渲染。小程序端需先下载PDF文件,再调用系统打开。
在 UniApp 中显示 PDF 文件,可以通过以下方法实现:
1. 使用 web-view 组件在线预览
- 将 PDF 文件上传到服务器,获取在线链接。
- 使用
web-view组件加载 PDF 链接(需确保链接可直接在浏览器中打开)。 - 示例代码:
<web-view src="https://example.com/yourfile.pdf"></web-view>
注意:部分平台(如微信小程序)可能对域名有校验,需在后台配置业务域名。
2. 调用系统应用打开
- 使用
uni.downloadFile下载文件到本地。 - 通过
uni.openDocument调用系统默认应用打开 PDF。 - 示例代码:
uni.downloadFile({
url: 'https://example.com/yourfile.pdf',
success: (res) => {
if (res.statusCode === 200) {
uni.openDocument({
filePath: res.tempFilePath,
fileType: 'pdf'
});
}
}
});
适用场景:适用于需要调用本地 PDF 阅读器的场景。
3. 使用 PDF 渲染插件(如 pdf.js)
- 在 H5 端可通过集成
pdf.js实现自定义渲染。 - 步骤:
- 将
pdf.js库放入项目静态目录。 - 通过
iframe或web-view加载本地 HTML 文件渲染 PDF。
- 将
- 局限性:仅支持 H5 平台,小程序端无法直接使用。
平台兼容性说明:
- H5:支持所有方法。
- 小程序:仅支持
web-view(需配置域名)和uni.openDocument。 - App:支持
web-view和uni.openDocument。
推荐方案:
- 优先使用
uni.openDocument,兼容性最好且体验接近原生。 - 若需内嵌展示,可在 H5 端使用
pdf.js,其他平台用web-view。
根据实际需求选择合适方案即可。

