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>
相关文章:
uniapp实现在线PDF文件预览
下载pdf文件放在static文件夹下 bug:hbuildX创建的项目pdf文件夹可以放在根目录下面,但是cli创建的项目无法预览,只能放在static下面 按钮跳转预览页面 <button click"toPdf">pdf</button>methods: {toPdf() {uni.…...
Python tkinter实现复刻Windows记事本UI和菜单的文本编辑器(一)
下一篇:Python tkinter实现复刻Windows记事本UI和菜单的文本编辑器(二)-CSDN博客 介绍: Windows操作系统中自带了一款记事本应用程序,通常用于记录文字信息,具有简单文本编辑功能。Windows的记事本可以新…...
【系统架构设计】架构核心知识: 3.3 DSSA和ABSD
目录 一 特定领域软件架构DSSA 1 DSSA 2 DSSA的基本活动和产物 3 参与DSSA的人员 4 建立过程...
Git的安装和常用命令Git与SVN的区别Gitee远程仓库团队开发代码共享演示
目录 一、Git入门 1.1 Git简介 1.2 Git与SVN的区别 1.2.1 详解 1.2.2 图解 1.3 Git相较于SVN的优势与劣势 1.3.1 Git的优势与劣势 1.3.2 SVN的优势与劣势 1.4 Git的工作流程 1.4.1 图解 1.4.2 详解 二、Git的安装以及常用命令 2.1 Git官网链接 2.2 安装步骤 2.…...
五、计算机网络
(一)OSI/RM 七层模型 七层模型是计算机网络的基石,整个计算机网络是构建与七层模型之上的。 在数据链路层,数据开始以帧为单位,网卡的 MAC 地址就是数据帧的地址,数据的传输开始有地址了。 局域网是工作…...
使用Grafana与MySQL监控监控网络延迟
文章目录 前言python程序使用Grafana步骤1:安装和配置 Grafana步骤2:配置 Grafana 数据源步骤3:创建 Grafana 仪表盘步骤4:将 Grafana 仪表盘嵌入到博客中 前言 在网络应用中,网络延迟是一个重要的指标,它…...
互联网常见职称
1、管理层 CEO – Chief Executive Officer 首席执行官 VP – Vice President 副总裁 HRD – Humen Resource Director 人力资源总监 OD – Operations Director 运营总监 MD – Marketing Director 市场总监 GM – General Manager 总经理 PM – Production Manager 产品…...
UI设计软件有哪些好用和免费的吗?
在我们分享五个有用的原型工具之前,完成原型,将优化界面,这次是UI设计师的任务,UI设计软件对设计师非常重要,UI设计工具是否使用直接影响最终结果,然后有人会问:UI界面设计使用什么软件…...
Linux开发工具之编译器gcc/g++
文章目录 1.查看版本2.程序的翻译3.gcc指令3.1gcc hello.c -o hello3.2gcc -E hello.c -o hello.i3.3gcc -S hello.c -o hello.s3.4gcc -c hello.c -o hello.o3.5gcc hello.o -o hello 4.动静态库[详讲链接阶段]4.1初步认识4.2动态链接4.3静态链接 1.查看版本 gcc -v. 2.程序…...
【Kurbernetes资源管理】陈述式资源管理方式
陈述式 一、 理论部分1.1 管理K8s资源的基本方法1.1.1 陈述式资源管理方式1.1.2声明式资源管理方式1.1.3 GUI式资源管理方法 1.2 陈述式资源管理方式1.2.1 Kubelet工具简介1.2.2 kubectl 的基本语法1.2.3 Kubectl工具的自动补全功能 1.3 Kubernetes Service1.4 Service 的类型(…...
flink测试map转换函数和process函数
背景 在flink中,我们需要对我们写的map转换函数,process处理函数进行单元测试,测试的内容包括查看函数的输出结果是否符合以及函数内的状态是否正确更新,本文就记录几个测试过程中的要点 flink中测试函数 首先我们根据我们要测…...
【跟小嘉学习JavaWeb开发】第一章 开发环境搭建
系列文章目录 【跟小嘉学习JavaWeb开发】第一章 开发环境搭建 文章目录 系列文章目录[TOC](文章目录) 前言一、JDK的下载与安装1.1、关于JDK的版本问题 二、环境变量配置2.1、配置 JAVA_HOME、CLASSPATH2.2、配置path2.3、启动 cmd 三、编写代码、编译并执行3.1、编写代码&…...
CSS语法、选择器、属性
1.css语法 * 格式:选择器 {属性名1:属性值1;属性名2:属性值2;...}* 选择器:筛选具有相似特征的元素* 注意:* 每一对属性需要使用;隔开,最后一对属性可以不加 2.选择器:筛选具有相似特征的元素 * 分类:1. 基…...
深度学习读取txt训练数据绘制参数曲线图的方法
有一些深度学习模型是并不像yolo系列那样最终输出相应的参数图,有很多训练形成了一个训练log文件,于是需要读取log文件中的内容并绘制成曲线图。 如下实例,有一个log文件的部分截图,需要将其读取出来并绘制曲线图 废话不多说&…...
VB.NET—DataGridView控件教程详解
目录 前言: 过程: 第一步: 第二步: 第三步: 第四步: 第五步: 番外篇: 总结: 前言: DataGridView是.NET FormK中的一个Windows窗体控件,它提供了一个可视化的表格控件,允许用户以表格形式显示和编辑数据。它通常用于显示和编辑数据库…...
MCU测试科普|如何进行MCU芯片测试,具体流程是什么?
MCU芯片测试系统是一种专门用于检测MCU芯片性能和质量的综合性设备。它通常由硬件和软件两部分组成,硬件包括测试仪器、适配器、测试夹具等,用于连接被测MCU芯片和测试机,实现高效高精度的测试。软件部分通常包括测试程序、测试管理软件等&am…...
单向循环代码实现cpp
// 单向循环链表 class CircleLink { public:CircleLink(){head_ new Node();tail_ head_;head_->next_ head_;}~CircleLink(){Node* p head_->next_;while (p ! head_){head_->next_ p->next_;delete p;p head_->next_;}delete head_;}public:// 尾插法 …...
【原创】java+jsp+servlet简单图书管理系统设计与实现
摘要: 图书管理系统是一个专门针对图书馆管理而设计的系统,它可以帮助图书管理员有效的对图书进行管理,在图书管理系统的设计中,首先要考虑的是系统的需求分析,该系统的设计与实现涉及多个方面,包括数据库…...
JVM之jinfo虚拟机配置信息工具
jinfo虚拟机配置信息工具 1、jinfo jinfo(Configuration Info for Java)的作用是实时地查看和调整虚拟机的各项参数。 使用jps -v 可以查看虚拟机启动时显示指定的参数列表,但是如果想知道未被显示指定的参数的系统默认值,除 …...
软件测试|PO设计模式在 UI 自动化中的实践
PO的思想最早是2013年由IT大佬Martin Flower提出的:https://martinfowler.com/bliki/PageObject.html 没错,就是他 — 没错,就是他 — 在他的文章里有这样一张经典样图,图片中展示了测试代码中直接操作HTML元素和使用PO模式将page对象封装成…...
MCP 2026组件集成失效率骤升47%?揭秘3个被92%开发团队忽略的上下文绑定陷阱
更多请点击: https://intelliparadigm.com 第一章:MCP 2026组件集成失效率骤升的行业警讯 近期,多家头部云原生平台在升级至 MCP(Model-Centric Platform)2026 版本后,报告其核心组件(如 mcp-r…...
零基础复现Claude Code(四):双手篇——赋予读写文件的能力
零基础复现Claude Code(四):双手篇——赋予读写文件的能力 开篇:从"纸上谈兵"到"真刀真枪" 上一篇,我们实现了ReAct循环的骨架——Agent已经会"想"了。它能输出: Thought: 我…...
显卡驱动残留问题终极解决方案:Display Driver Uninstaller深度使用指南
显卡驱动残留问题终极解决方案:Display Driver Uninstaller深度使用指南 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-dri…...
网络受限环境下的OOTDiffusion虚拟试衣AI完整部署实战指南
网络受限环境下的OOTDiffusion虚拟试衣AI完整部署实战指南 【免费下载链接】OOTDiffusion [AAAI 2025] Official implementation of "OOTDiffusion: Outfitting Fusion based Latent Diffusion for Controllable Virtual Try-on" 项目地址: https://gitcode.com/Gi…...
如何用playwright-stealth让你的爬虫“隐形“:3个关键技巧与实战指南
如何用playwright-stealth让你的爬虫"隐形":3个关键技巧与实战指南 【免费下载链接】playwright_stealth playwright stealth 项目地址: https://gitcode.com/gh_mirrors/pl/playwright_stealth 你是否发现用Playwright写的爬虫总是被网站检测出来…...
如何快速上手Minecraft PCL启动器:10个简单步骤打造你的游戏世界
如何快速上手Minecraft PCL启动器:10个简单步骤打造你的游戏世界 【免费下载链接】PCL Minecraft 启动器 Plain Craft Launcher(PCL)。 项目地址: https://gitcode.com/gh_mirrors/pc/PCL 想要轻松畅玩Minecraft却为复杂的启动和模组管…...
从MICCAI挑战赛看医学影像分析:脊柱侧弯Cobb角自动检测的现状、难点与未来
医学影像分析新范式:脊柱侧弯Cobb角自动检测的技术演进与临床落地挑战 脊柱侧弯筛查的数字化进程正在重塑传统骨科诊疗路径。当全球医疗系统面临放射科医师短缺与诊断标准不统一的双重压力时,基于深度学习的Cobb角自动检测技术展现出革命性潜力。2023年国…...
Matlab的遗传算法优化BP神经网络多输入两输出预测模型
matlab的基于遗传算法优化bp神经网络多输入多输出预测模型,有代码和EXCEL数据参考,精度还可以,直接运行即可,换数据OK。 这个程序是一个基于遗传算法优化的BP神经网络多输入两输出模型。下面我将对程序进行详细分析。首先…...
MCP 2026证书签发机制突变!2024年12月起新增FOTA固件签名验证——3类老旧终端设备将被自动踢出监管平台
更多请点击: https://intelliparadigm.com 第一章:MCP 2026农业设备数据对接概览 MCP 2026(Modular Communication Protocol 2026)是专为智能农业装备设计的轻量级、可扩展数据交互协议,支持拖拉机、播种机、无人灌溉…...
为什么BiliDownload是B站视频下载的最佳解决方案?
为什么BiliDownload是B站视频下载的最佳解决方案? 【免费下载链接】BiliDownload B站视频下载工具 项目地址: https://gitcode.com/gh_mirrors/bil/BiliDownload 在当今数字内容爆炸的时代,B站(哔哩哔哩)已成为无数人获取知…...
