你想要的PDF预览新方式,微信小程序绝对不容错过

前言

随着微信小程序的不断发展和变革,越来越多的功能被开发出来,其中预览 PDF 文件功能也已经成为小程序的常见应用之一。今天,我们将针对微信小程序预览 PDF 这一功能,为大家详细解析和介绍。


实现思路

  1. 在小程序界面中添加一个按钮,并为其绑定一个点击事件;
  2. 在事件中调用 wx.downloadFile 方法,指定要下载的 pdf 文件的 url 和存储路径;
  3. 下载完成后,再调用 wx.openDocument 方法打开该文件预览。在调用此方法时,需要把之前存储的文件路径传入。

注意: 由于微信小程序的安全限制,必须先调用 wx.downloadFile 方法下载文件,才能在小程序中打开该文件。


wx.downloadFile(Object object)

参数

参数类型是否必填说明
urlstring下载资源的 url
headerObjectHTTP 请求的 Header,Header 中不能设置 Referer
timeoutnumber超时时间,单位为毫秒
filePathstring指定文件下载后存储的路径 (本地路径)
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

示例

wx.downloadFile({
  url: 'https://example.com/audio/123', //仅为示例,并非真实的资源
  success (res) {
    // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
    if (res.statusCode === 200) {
      wx.playVoice({
        filePath: res.tempFilePath
      })
    }
  }
})

该方法的完整文档信息大家可以『点击这里』查看。


wx.openDocument(Object object)

参数

参数类型是否必填说明
filePathstring文件路径 (本地路径) ,可通过 downloadFile 获得
showMenuboolean默认值为false,是否显示右上角菜单
fileTypestring文件类型,指定文件类型打开文件
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

示例

wx.downloadFile({
  // 示例 url,并非真实存在
  url: 'http://example.com/somefile.pdf',
  success: function (res) {
    const filePath = res.tempFilePath
    wx.openDocument({
      filePath: filePath,
      success: function (res) {
        console.log('打开文档成功')
      }
    })
  }
})

该方法的完整文档信息大家可以『点击这里』查看。


实践

看到这里,相信大家对这两个方法已经有了一定的了解,下面我们直接用一个更完整的实例来帮助大家更好的使用该方法实现预览 pdf 的功能。话不多说,下面直接看代码。

wxml 文件

<view>
	<button bindtap="itemPdfOn" type="primary">点我预览</button>
</view>

js 文件

Page({
    // 查看pdf事件方法  
    itemPdfOn() {
        wx.showLoading({
            title: '加载中',
        })
        // 下载文件方法
        wx.downloadFile({
            url: 'https://s30.aconvert.com/convert/p3r68-cdx67/ah4fu-1s24x.pdf',
            success: function (res) {
                var Path = res.tempFilePath //返回的文件临时地址,用于后面打开本地预览所用
                wx.openDocument({
                    filePath: Path,
                    success: function () {
                        console.log("打开文档成功");
                        wx.hideLoading()
                    }
                })
            },
            fail: function (res) {
                console.log(res);
            }
        })
    },
})

实现效果

在这里插入图片描述

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水星记_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值