当前位置:   article > 正文

uni微信H5实现预览.pdf文件_h5实现pdf流预览

h5实现pdf流预览

uniapp开发H5,客户需求需要直接预览.pdf文件,最开始想到了uni提供的方法uni.openDocument(OBJECT)但是仔细一看该方法不支持h5使用,果断就放弃了。
在这里插入图片描述
又尝试使用iframe嵌套的形式,在电脑端运行的时候发现是可以使用的,但到了真机发现这种方法也是不行,都是直接跳转到了web浏览器进行下载。
通过查阅,发现使用一个插件可以实现在线预览的效果,也就是本篇文章的主角pdf.js

官方网站

pdf.js: 点击查看.如下,官网也是非常简洁。
在这里插入图片描述
可以点击download进行下载,这里选择了如下版本。
在这里插入图片描述
下载后把压缩包解压到自己的项目的static文件夹中,
1.在static文件夹创建一个pdf的文件夹
2.把刚下载的pdf.js压缩包解压在新建的文件中
3.在需要使用的页面中添加如下代码

<template>
<!-- 可以使用这种方式 -->
	<web-view :src="url"></web-view>
<!-- 也可以使用 -->
<iframe scrolling="none" :src="`/static/pdf/web/viewer.html?file=${fileUrl}`" style="width:100%;height:100%;"></iframe>
</template>
<script>
export default {
	data() {
		return {
			// pdf.js的viewer.htm所在路径
			viewerUrl: '/static/pdf/web/viewer.html',
			// 要访问的pdf的路径
			fileUrl: 'https://www.tt.com/test.pdf',
			// 最终显示在web-view中的路径
			url: ''
		};
	},
	onLoad() {
		// h5,使用h5访问的时候记得跨域
		// #ifdef H5
		this.url = `${this.viewerUrl}?file=${encodeURIComponent(this.fileUrl)}`;
		// #endif
		// 判断是手机系统:安卓,使用pdf.js
		// #ifdef APP-PLUS
		if(plus.os.name === 'Android') {
			this.url = `${this.viewerUrl}?file=${encodeURIComponent(this.fileUrl)}`;
		}
		// ios,直接访问pdf所在路径
		else {
			this.url = encodeURIComponent(this.fileUrl);
		}
		// #endif
	},
	methods: {}
};
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

6.如果出现跨域问题,如下设置
直接修改源代码在viewer.js中,也可以全局搜素file origin does not match viewer,注释该代码块
在这里插入图片描述
通过以上操作,在项目中可以完美实现,交工~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/608992
推荐阅读
相关标签
  

闽ICP备14008679号