码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • uniapp: 实现pdf预览功能


    目录

    第一章 实现效果

    第二章 了解并解决需求 

    2.1 了解需求

    2.2 解决需求

    2.2.1 方法一

    2.2.2 方法二

    第三章 资源下载


    第一章 实现效果

    第二章 了解并解决需求 

    2.1 了解需求

    • 前端需要利用后端传的pdf临时路径实现H5端以及app端的pdf预览
    • 首先我们别像pc端一样,利用iframe或者 window.open,解决方法如下:

    2.2 解决需求

    2.2.1 方法一

    • static下添加该pdf文件,一定要注意的是将该文件夹放在static下,文件获取在最后给出 

    •  创建pdf预览文件夹:

    • 根据需求撰写前端代码:
    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. pdfUrl:'',
    6. // 方法一的预览路径,注意写法,文件命名可以自定义,具体看自己,但是参数格式不要错了
    7. viewerUrl: '/static/html/web/viewer.html?file='
    8. };
    9. },
    10. onLoad(options) {
    11. // pdf预览路径拼接,options是请求后端路径的页面值传参的
    12. this.pdfUrl = this.viewerUrl + options.pdfUrl
    13. console.log('url', this.pdfUrl)
    14. },
    15. methods:{
    16. back2Index(){
    17. uni.navigateBack()
    18. },
    19. }
    20. }
    21. script>
    22. <style lang="scss" scoped>
    23. .wrapper{
    24. background-color: #f3f4f6;
    25. .main{
    26. margin-top: 88rpx;
    27. }
    28. }
    29. style>
    • 请求路径的文件代码内容:
    1. // 获取pdf文件信息
    2. downloadInfo (file) {
    3. // 接口请求,大家自行调整自己的请求方式
    4. deathInfoService.download({fileName: file}).then(({data}) => {
    5. let blob = data
    6. const binaryData = []
    7. binaryData.push(blob)
    8. // 看下面,该url是小编最终转的pdf临时路径
    9. const url = window.URL.createObjectURL(new Blob(binaryData, { type: 'application/pdf;chartset=UTF-8' }))
    10. // 拿到url之后传参,跳转页面
    11. uni.navigateTo({
    12. url:'/page_cremationAppoint/cremationAppoint/pdfView?pdfUrl='+ url
    13. })
    14. })
    15. },

    注意: 以上所有代码只是小编的大致思路,具体实现需要大家根据实际情况自行判断,例如pdf路径是已经有的,就不需要发送请求,直接带参跳转即可;也可能有的后端会直接返回一个路径…只是小编的这个后端比较懒,说能实现就行,所以小编这里为了得到路径对后端返回的值做了处理。

    • 第一种方法已经实现了,具体效果在最开始展示了

    2.2.2 方法二

    • 方法2的处理方式与方法一的处理思路是一样的吗,唯一不同的就是使用的工具不同,这里使用的是pdf.js文件。
    • 需要更改的地方是:

    • 该url是根据大家工具放的位置写的,但也是在static文件下,参数是url=,代码如下:
    viewerUrl: '/static/pdf/pdf.html?url='

    第三章 资源下载

    小编gitee仓库中:resource_package: uniapp pdf预览需要的资源包

  • 相关阅读:
    Day131.MySQL高级:索引、Explain索引分析、索引优化 | 失效情况
    代码随想录一刷打卡——.二叉树的层次遍历(十题特别版)
    SpringCloud系列(三)Nacos 注册中心的搭建及服务发现
    lambda 自定义收集器
    SpringBoot整合RabbitMQ
    自媒体平台上剪视频的素材都是从哪来的?
    LeetCode-572. Subtree of Another Tree [C++][Java]
    遍历线索化二叉树(思路分析) [算法与数据结构][Java]
    Centos7虚拟机硬盘扩容 + 修改Docker默认存储位置
    华为9.20笔试 复现
  • 原文地址:https://blog.csdn.net/qq_45796592/article/details/134373709
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号