微信小程序预览 word、excel、ppt、pdf 等文件
RealizeInnerSelf丶 时间:2022-10-03
微信小程序预览 word、excel、ppt、pdf 等文件
预览效果
前言
微信官方提供了相关的 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 文件为例
- 下载文件需要一个等待过程,所以加上加载提示很有必要
- const util = require('../../utils/util') // 引入封装过的加载提示
-
- Page({
- // 预览文件
- previewFile(fileLink) {
- if(!fileLink) {
- return false
- }
- util.showLoading()
-
- // 单次下载允许的最大文件为 200MB
- wx.downloadFile({
- url: fileLink, // 地址已打码,自己换个其他的地址("https://www.xxxxx.com/file/测试通知.pdf")
- success: function (res) {
- console.log(res, "wx.downloadFile success res")
- if(res.statusCode != 200) {
- util.hideLoadingWithErrorTips()
- return false
- }
- var Path = res.tempFilePath //返回的文件临时地址,用于后面打开本地预览所用
- wx.openDocument({
- filePath: Path,
- showMenu: true,
- success: function (res) {
- console.log('打开成功');
- util.hideLoading()
- }
- })
- },
- fail: function (err) {
- console.log(err, "wx.downloadFile fail err");
- util.hideLoadingWithErrorTips()
- }
- })
-
- }
- })
util.js
- const showLoading = (tips = '加载中...') => {
- wx.showNavigationBarLoading()
- wx.showLoading({
- title: tips,
- })
- }
-
- const hideLoading = () => {
- wx.hideLoading()
- wx.hideNavigationBarLoading()
- }
-
- const hideLoadingWithErrorTips = (err = '加载失败...') => {
- hideLoading()
- wx.showToast({
- title: err,
- icon: 'error',
- duration: 2000
- })
- }
-
- module.exports = {
- showLoading: showLoading,
- hideLoading: hideLoading,
- hideLoadingWithErrorTips: hideLoadingWithErrorTips,
- }
特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。