前言
微信官方提供了相关的 API 来预览常见文件,目前支持如下格式的文件
总结一下就是先用 wx.downloadFile
API 把文件下载下来,再用 wx.openDocument
API 把它打开
- wx.downloadFile:下载文件到本地
- wx.openDocument:新开页面打开本地文档
注意点
wx.downloadFile API 单次下载允许的最大文件为 200MB
网络-使用说明(域名只支持
https
(wx.uploadFile、wx.downloadFile) 和 wss
(wx.connectSocket) 协议)可以结合 DownloadTask 相关 API 实现下载进度展示
需要在小程序后台配置 downloadFile 合法域名才能下载文件
实现代码
以预览 PDF 文件为例
- 下载文件需要一个等待过程,所以加上加载提示很有必要
1 | const util = require('../../utils/util') // 引入封装过的加载提示 |
1 | /* 加载动画相关 */ |
补充
每次点击都要重新下载文件很不友好,可以考虑把文件地址存下来,如果下过了就直接打开
个人扩展思路:
第一次点击调用 wx.downloadFile 将返回的文件本地地址存到 localStorage 缓存里,每次点击前去 localStorage 里看一下有没有这条数据的本地地址,有的话就直接调用 wx.openDocument 打开,打开失败函数里判断下是不是本地文件已经清理掉了,清理掉了就重新下载再打开