如何解决安卓手机无法预览pdf文件而是需要直接下载的问题

在开发中常常会遇到需要在一个应用里打开一份pdf文件并预览,经真机调试时发现在苹果手机上打开pdf文件能正常预览,但在安卓手机打开时却会需要我们下载才能预览,无法直接预览

为了解决这个问题,我们采用安装pdfH5插件的方式,代码如下:

1、安装pdfh5插件

npm i -S pdfh5

2、构建一个pdhH5组件

javascript 复制代码
<script>
import { computed, onMounted } from "vue";
import { useRoute } from 'vue-router'

import Pdfh5 from "pdfh5";
import "pdfh5/css/pdfh5.css";

export default {
  beforeRouteEnter: (to, from, next) => {
    if (to.query.name) {
      to.name = to.query.name
    }
    next()
  },
  setup() {
    const route = useRoute()
    onMounted(() => {
        let pdfurl = decodeURIComponent(route.query.pdfUrl)
        let pdfh5 = null

        //实例化
        pdfh5 = new Pdfh5("#PDF", {
            pdfurl: pdfurl,
        });

    });
  },
};
</script>

<template>
  <div id="PDF" class="view-pdf"></div>
</template>

<style lang="scss" scoped>
.view-pdf {
  width: 100%;
  height: 100vh;
}
</style>

3、在路由文件引入pfdH5组件

javascript 复制代码
{
	path: 'pdfView'
	name:'pdfView',
	component: () => import('../components/pdfH5.vue')
}

4、在业务组件跳转到pdfH5组件

javascript 复制代码
const handleClickPdf = () => {
	router.push({
		path:'/xxx/pdfview'
		query: {
			// pdfUr1是需要跳转的pdf文件的静态资源所在地址
			// name是浏览器顶部显示的文件标题
			pdfUr1: encodeURIComponent('xxx/xxx'),
			name: '条款及细则',
		}
	})
}
相关推荐
wanhengidc18 分钟前
云手机服务器多开需要注意哪些
运维·服务器·智能手机
游戏开发爱好者81 小时前
iOS 26 崩溃日志深度解读,获取方式、系统变动、定位策略
android·macos·ios·小程序·uni-app·cocoa·iphone
一直向钱2 小时前
android 基于okhttp 封装一个websocket管理模块,方便开发和使用
android·websocket·okhttp
小趴菜82273 小时前
安卓人机验证View
android·java·前端
拓端研究室3 小时前
专题:2025零售数字化与即时零售竞争洞察报告|附130+份报告PDF、数据仪表盘汇总下载
pdf·零售
wanhengidc3 小时前
云手机在软件资源方面的优势
运维·服务器·网络·游戏·智能手机
想不明白的过度思考者3 小时前
鸿蒙系统:不止于“手机OS”的全场景智能操作系统
华为·智能手机·harmonyos
ajassi20003 小时前
开源 java android app 开发(十七)封库--混淆源码
android·java·开源
2501_916008894 小时前
JavaScript调试工具有哪些?常见问题与常用调试工具推荐
android·开发语言·javascript·小程序·uni-app·ecmascript·iphone
2501_929382655 小时前
AdGuard解锁订阅版高级版 安卓广告拦截器APP v4.11.63 / 4.13.7 Nightly MOD
android