• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

UNIAPP-微信小程序做H5PDF预览

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

微信自带的 openDocument API给QQ浏览器放水了.

 

一些资料我们又不能让用户那么轻易的下载到,所以只能利用webview来实现一个pdf预览 , 目前来说对移动端比较友好的当属:pdfh5 这个插件,作者也挺良心的一直在更新.

下载示例下来以后

 

 

一、把示例的模板调整一下 (一定要看注释

 

<!DOCTYPE html>
<html>
	<head>
		<meta name="viewport" content="width=device-width,initial-scale=1">
		<title></title>
		<link rel="stylesheet" type="text/css" href="../style.css" />
		<link rel="stylesheet" type="text/css" href="../pdfh5.css" />
		<!-- 注意,下面这个样式一定要加上!否则会计算不精准造成PDF文件底部空白 -->
		<style type="text/css">
			* {
				padding: 0;
				margin: 0;
			}

			html,
			body,
			#app {
				width: 100%;
				height: 100%;
			}
		</style>
	</head>
	<body>
		<div >
			<div ></div>
		</div>
		<script src="../pdf.js" type="text/javascript" charset="utf-8"></script>
		<script src="../pdf.worker.js" type="text/javascript" charset="utf-8"></script>
		<script src="../jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="../pdfh5.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
		
			/** 这里把url转为对象取值
			 * @param {String} val https://www.baidu.com?title=hello&src=https://www.file.com/hello.pdf
			 * @return {} {title:"hello",src:"https://www.file.com/hello.pdf"}
			 * **/
			function url2Object(val = '', unDecodeURI = true) {
				let result = {};
				const query = val.split('?')[1];
				const arr = query.split('&');
				arr.forEach((item, idx) => {
					let param = item.split('='),
						name = param[0],
						value = param[1] || ''
					if (name) {
						result[name] = value;
					}
				});
				return result;
			}


			// 获取地址url
			let win = window.location.href;
			// 经过 encodeURIComponent 加密的字符串需要用 decodeURIComponent 解码
			let url = decodeURIComponent(url2Object(win).src);
			let name = decodeURIComponent(url2Object(win).title);

			document.title = decodeURIComponent(name);
			
			let pdfh5 = new Pdfh5('#demo', {
				// 这里放pdf文件路径即可
				pdfurl: url
			});
		</script>
	</body>
</html>

 

  

 

二、微信小程序传值模板

特别要注意的是这里使用了 encodeURIComponent 加密,浏览器端就要使用 decodeURIComponent  解码.

<template>
	<view><web-view :src="websrc"></web-view></view>
</template>

<script>
export default {
	data() {
		return {
			websrc: ''
		};
	},
	onLoad(options) {
		// 这里把路径拼接成:https://www.baidu.com?title=hello&src=https://www.file.com/hello.pdf , 挺简单的就是文件链接有些符号浏览器会自动转所以我们要加密
		this.websrc = `${options.url}?src=${encodeURIComponent(options.src)}&title=${encodeURIComponent(options.title)}`;
	},
	methods: {}
};
</script>

<style></style>

  

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
小程序获取当前时间及获取当前日期发布时间:2022-07-18
下一篇:
微信小程序访问豆瓣API报403发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap