uni-app实现pc端pdf预览功能,可跨域直接打开

因工作需求需要pc端要实现pdf预览功能,折腾了两天算是搞定了,分享下具体的流程,之前也是找了很多资料,大部分都是描述的不是很清楚,踩了不少的坑,最后采用的是pdf.js来实现的

主要参考了该博友:

PDF.JS-文件流方式在线展示pdf文件_MJlife的博客-CSDN博客_js pdf 流

第一步要先下载pdf.js  官网地址:Getting Started

 第二步 需要吧下载好的压缩文件解压到项目下的static静态目录下   记得重启项目
 

这时可以直接在本地测试自己是否引用成功

http://xxxxxxxxxx:端口号/项目名称/static/pdf/web/viewer.html

如果成功会进入默认的内容页 

第三步在需要的页面中使用

通过navigator.platform来获取当前的系统参数做一定程度的适配

如果不需要兼容safari只需要执行 window.open直接打开窗口跳转就好

 //获取当前操作系统参数,因Safari 浏览器中没办法在回调函数里面执行window.open, 原因是safari的安全机制将其阻挡了
//url 代表后端的完整请求地址路径,类似:https://xxxxxxxxxxx:端口号/项目称/api/common/file/doc-2-html/download?fileId=1111111111111
	   var _pf=navigator.platform;
      if (_pf.indexOf("Win") > -1) {
        //window系统支持chrome,Edge
        window.open(
          "/项目名称/static/pdf/web/viewer.html?file=" + encodeURIComponent(url)
        );
      } else if (_pf.indexOf("Mac") > -1) {
        mac系统支持safari;
        var winRef = window.open("", "_blank"); //先打开一个页面
        winRef.location =
           "/项目名称/static/pdf/web/viewer.html?file=" + encodeURIComponent(url)
      } else {
        window.open(
           "/项目名称/static/pdf/web/viewer.html?file=" + encodeURIComponent(url)
        );
      }

该流程算是最简单也是最方便好懂的,通过window.open打开新的窗口访问本地下载好的viewer.html来访问encodeURIComponent编码过后的地址以此来打开pdf文档

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值