当前位置: 首页 > 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>

相关文章:

  • 腾讯云CVM服务器5年可选2核4G和4核8G配置
  • 从零开始配置离线服务器
  • wordcloud在mac上显示中文乱码
  • Eclipse使用配置tomcat服务:部署找不到web.xml
  • c语言数据结构---三叉树
  • 深入了解springmvc响应数据
  • 上门洗衣洗鞋app小程序
  • STM32H743XX/STM32H563XX芯片烧录一次后,再次上电无法烧录
  • js 深度学习(四)
  • PHP实用工具:实现Excel转Mysql工具自动字段长度
  • xlua游戏热更新(lua访问C#)
  • c语言数据结构---广义表
  • Centos 7rc.local脚本命令开机不执行及指定用户启动的方法
  • Android手势识别类,GestureDetector,ScaleGestureDetector
  • RT-DETR算法优化改进:Backbone改进 | LSKNet:遥感旋转目标检测新SOTA | ICCV 2023
  • ComponentOne 2017 V2版本正式发布
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • emacs初体验
  • flask接收请求并推入栈
  • IndexedDB
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • magento2项目上线注意事项
  • Node 版本管理
  • node和express搭建代理服务器(源码)
  • React-Native - 收藏集 - 掘金
  • 闭包,sync使用细节
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 给第三方使用接口的 URL 签名实现
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 微信小程序设置上一页数据
  • 异常机制详解
  • 用Canvas画一棵二叉树
  • 在Unity中实现一个简单的消息管理器
  • Nginx实现动静分离
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • (2)Java 简介
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (vue)页面文件上传获取:action地址
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (六)vue-router+UI组件库
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)Google的Objective-C编码规范
  • (转)http-server应用
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .a文件和.so文件
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Core Web APi类库如何内嵌运行?
  • .NET Core 项目指定SDK版本
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃