如何在Flutter应用中查看Google Drive内的PDF文件
问题原因
你当前使用的是Google Drive的网页预览链接,返回的是HTML页面而非PDF二进制文件,所以SfPdfViewer无法正常解析渲染。
正确实现步骤
- 先调整目标PDF文件的权限,设置为「所有知道链接的用户可查看」
- 将链接替换为Google Drive的PDF直链格式,正确的直链结构为
https://drive.google.com/uc?export=view&id=你的文件ID
修改后的代码如下:
SfPdfViewer.network('https://drive.google.com/uc?export=view&id=${controller.fileId}')
常见问题处理
- 如果你是Web端使用遇到跨域报错,可以把链接换成下载直链:
https://drive.google.com/uc?export=download&id=${controller.fileId} - 如果是私有权限的文件,不能直接使用公开直链,需要先通过Google Drive官方API获取文件的临时访问凭证,拼接在请求链接中,或者先将PDF文件下载到本地后加载本地文件
- 大体积PDF加载卡顿的话,建议先将文件缓存到本地存储后再加载,避免重复发起网络请求
内容的提问来源于stack exchange,提问作者MD Sarfaraj
相关产品推荐
相关产品推荐

