当前位置: 首页 > news >正文

uniapp实现在线PDF文件预览

在这里插入图片描述
在这里插入图片描述

下载pdf文件放在static文件夹下

bug:hbuildX创建的项目pdf文件夹可以放在根目录下面,但是cli创建的项目无法预览,只能放在static下面
在这里插入图片描述

按钮跳转预览页面

<button @click="toPdf">pdf</button>methods: {toPdf() {uni.navigateTo({url: './course/pdf'})}}

预览页面

重点:1、viewerUrl的路径

<template><view class="content"><web-view :src="url1" @message="handlePostMessage"></web-view><!-- <web-view src="https://cn.bing.com/" @message="handlePostMessage"></web-view> --></view>
</template><script>
/* uni页面通信文档* https://ask.dcloud.net.cn/article/35083* 组件使用pdf.js源码修改了部分内容* 只需要完成web-view监听页数并与uni通信即可* @kklxx 2022/12/09修复组件通信*/
import {computed
} from "vue";
export default {data() {return {viewerUrl: '/static/pdf/web/viewer.html', // 注意:静态的html文件需要放在根路径下的 hybrid/html 文件夹中fileUrl: "", // 要访问的本地pdf的路径url1: '', // 最终显示在web-view中的路径// currentPage: 1, //初始页totalPage: 0, //总页码currentReadPage: 0, //当前页码};},onLoad(options) {this.fileUrl = "http://103.213.97.43:8081/group1/M00/00/EF/wKgAoWVEZgiAA8tOAAtT0ZynsZE457.pdf"/* 初始页面 */this.pageInt(); //获取pdfs数据},mounted() {/* H5页面通信方式 */// #ifdef H5window.addEventListener("message", this.ReceiveMessage);// #endif},//页面销毁前beforeDestroy() {uni.removeStorage({ //清除pdf留下的缓存,不干扰新的pdf载入key: 'pdfjs.history',success() {// console.log("removeStorage", res)}})},methods: {//页面初始化pageInt() {this.url1 = `${this.viewerUrl}?file=${encodeURIComponent(this.fileUrl)}&page=` + 1;console.log(this.url1, 99)},/* *	做成监听滚动条判断更好* *///uni 组件通信 监听handlePostMessage(data) {let arr = data.detail.data.pop()this.totalPage = arr[0].totalPage //总页数this.currentReadPage = arr[1].page + 1 //当前页数console.log("app:", this.totalPage, this.currentReadPage);},//h5 监听ReceiveMessage(event) {if (event.data && event.data.data && event.data.data.arg) {this.totalPage = event.data.data.arg[0].totalPagethis.currentReadPage = event.data.data.arg[1].page + 1}console.log("app:11111111", event, this.totalPage, this.currentReadPage);},//页面销毁前动作addBrowseRecord() {// console.log("总页数:",this.totalPage);// console.log("当前页数:",this.currentReadPage);},}
};
</script><style lang="scss" scoped></style>
http://www.lryc.cn/news/223763.html

相关文章:

  • Python tkinter实现复刻Windows记事本UI和菜单的文本编辑器(一)
  • 【系统架构设计】架构核心知识: 3.3 DSSA和ABSD
  • Git的安装和常用命令Git与SVN的区别Gitee远程仓库团队开发代码共享演示
  • 五、计算机网络
  • 使用Grafana与MySQL监控监控网络延迟
  • 互联网常见职称
  • UI设计软件有哪些好用和免费的吗?
  • Linux开发工具之编译器gcc/g++
  • 【Kurbernetes资源管理】陈述式资源管理方式
  • flink测试map转换函数和process函数
  • 【跟小嘉学习JavaWeb开发】第一章 开发环境搭建
  • CSS语法、选择器、属性
  • 深度学习读取txt训练数据绘制参数曲线图的方法
  • VB.NET—DataGridView控件教程详解
  • MCU测试科普|如何进行MCU芯片测试,具体流程是什么?
  • 单向循环代码实现cpp
  • 【原创】java+jsp+servlet简单图书管理系统设计与实现
  • JVM之jinfo虚拟机配置信息工具
  • 软件测试|PO设计模式在 UI 自动化中的实践
  • 如何上传自己的Jar到Maven中央仓库
  • 智能井盖传感器功能,万宾科技产品介绍
  • 洛谷P4185 离线+并查集
  • 遇到java.security.AccessControlException:access denied怎么办?
  • c++对接CAT1400
  • Linux基础【Linux知识贩卖机】
  • CSS 边框、轮廓线
  • Transformer架构 完整的处理流程
  • git and svn 行尾风格配置强制为lf
  • 达梦数据库答案
  • 基于SSM的楼房销售系统设计与实现