最近公司开发的应用需要使用webview显示PDF格式的合同文件,因为后台返回的是一个PDF文件的的下载路径,用浏览器是可以直接打开查看的。起初我以为webview应该也能直接解析查看,毕竟强大如Google,怎么会连这种问题都没有解决呢,然而我错了,Android的webview并不能自动解析PDF文件。然后就在网络上各种搜索,大致都提供了两种解决方案。

解决方案一:利用设备自带浏览器打开pdf

  1.mWebView.getSettings().setJavaScriptEnabled(true);      2.mWebView.getSettings().setSupportZoom(true);      3.mWebView.getSettings().setDomStorageEnabled(true);      4.mWebView.getSettings().setAllowFileAccess(true);      5.mWebView.getSettings().setPluginsEnabled(true);      6.mWebView.getSettings().setUseWideViewPort(true);      7.mWebView.getSettings().setBuiltInZoomControls(true);      8.mWebView.requestFocus();      9.mWebView.getSettings().setLoadWithOverviewMode(true);      10.mWebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);      11.String pdfUrl = "http:xxx.pdf";      12.mWebView.loadUrl("http://docs.google.com/gview?embedded=true&url=" +pdfUrl);

解决方案二:利用Google服务解析后再在mWebView中打开pdf
   1.mWebView.getSettings().setJavaScriptEnabled(true);      2.mWebView.getSettings().setSupportZoom(true);      3.mWebView.getSettings().setDomStorageEnabled(true);      4.mWebView.getSettings().setAllowFileAccess(true);      5.mWebView.getSettings().setPluginsEnabled(true);      6.mWebView.getSettings().setUseWideViewPort(true);      7.mWebView.getSettings().setBuiltInZoomControls(true);      8.mWebView.requestFocus();  www.2cto.com    9.mWebView.getSettings().setLoadWithOverviewMode(true);      10.mWebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);      11.String pdfUrl = "http://xxx.pdf";      12.String data = "<iframe src='http://docs.google.com/gview?embedded=true&url="+pdfUrl+"'"+" width='100%' height='100%' s    tyle='border: none;'></iframe>";      13.mWebView.loadData(data, "text/html", "UTF-8");

以上两种方案尝试后都没有效果,最终不得不使用github第三方解析(android-pdfview),实现思路,将后台提供的PDF文件下载地址下载到本地sd卡中,解析后加载到webview中显示,当用户关闭当前活动页面时,删除相关文件。这个过程中,还有一个问题,就是app后台的PDF文件的下载地址是内网的,所以需要app后台将网站的PDF文件下载后以文件流的形式返回给app客户端,当然一样是下载文件。
第三方解析工具github地址:https://github.com/JoanZapata/android-pdfview.git

android webView显示PDF文件相关推荐

  1. android APP内显示PDF文件

    android APP内显示PDF文件 最近公司要做一个小功能,显示在APP内部显示pdf文件,刚接到任务感觉非常简单的一小功能,做的时候才发现在真的很不好实现. 因为android的webView与 ...

  2. 如何在 SAP UI5 应用里显示 PDF 文件试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 本专栏计划的文章数在 300 篇左右,到 2022年12月23日为止,目前已经更新了 155 篇,专栏完成度为 51.6%,完成度已经超过了一半了. ...

  3. Android WebView注入js文件,判断当前HTML有没有某个js然后再注入

    Android WebView注入js文件,判断当前HTML有没有某个js然后再注入 1.注入js代码 判断当前有没有jQuery文件引入,然后再进行注入. 判断依据其实很简单,获取script 的d ...

  4. 在html中加入pdf文件吗,如何在网页中显示PDF文件

    我们是不是对百度文库能直接在网页上显示PDF文件感到好奇,你是否也想实现这样的功能?很多朋友认为可以直接在网页中插入代码就可以实现这个功能,其实要在网页中完整地显示PDF文件,需要把PDF文件转换成S ...

  5. ASP.NET 用 FlexPaper 在页面上显示 PDF 文件

    必要条件 演示 ASP.NET 用 FlexPaper 在页面上显示 PDF 文件 软件环境 解决方案结构 简单显示 SWF 文件 上传并显示 PDF 文件 常见问题 参考资料 其实,虽说是显示 PD ...

  6. 【C# 基础】— 解决 winForm 引用 Adobe PDF Reader控件不显示pdf 文件 问题

    前言 公司的CS 终端需要显示 PDF 文件 ,在换用了"Adobe PDF Reader" 这个控件后,运行程序不报错,窗体控件区显示一片空白,PDF 文件就是不显示,这是怎么回 ...

  7. vue项目读取显示pdf文件

    项目需求:展示pdf条款. 方法的实现:使用 iframe 标签 代码段: 数据 data(){return{detail: [{name: '条款1',to: './public/pdf_tk.pd ...

  8. Asp.net Core 配合 PDFObject 和 pdf.js 在浏览器显示pdf文件

    Asp.net Core 配合 PDFObject 和 pdf.js 在浏览器直接显示pdf文件 测试环境的浏览器版本: Chrome :90.0.4430.93(64 位) FireFox :88. ...

  9. 【教程】PDF组件Spire.PDF 教程:在C#中显示PDF文件的打印预览

    本文演示如何使用Spire.PDF和c#在Windows窗体应用程序中显示PDF文件的打印预览. 在使用下面的代码之前,我们需要创建一个Windows窗体应用程序,在窗体中添加一个PrintPrevi ...

最新文章

  1. 资料分享:送你一本《机器学习实战》电子书!
  2. 重磅回击!ZeniMax回击Oculus新试验
  3. Fedora 12 安装配置subversion
  4. .net程序员的盲点(一):参数修饰符ref,out ,params的区别
  5. html radio 默认图片替换_html,css_如何更改radio、checkbox选项框背景图?,html,css - phpStudy...
  6. 【python数据挖掘课程】二十四.KMeans文本聚类分析互动百科语料
  7. 详解C语言中 # 和 ## 的用法
  8. linux复制文件夹 实例,linux复制文件夹与文件实例介绍linux操作系统 -电脑资料
  9. 各种文件系统支持的最大硬盘容量
  10. 金数据一个不错的调查平台
  11. 读《世界是数字的》笔记
  12. 不容错过 DOCKERCON SF 2019 大会的 5 个理由
  13. 机器学习作业班_python神经网络搭建
  14. 系统架构设计-计算机组成与体系结构
  15. ubuntu 19查看和修改时区
  16. 网络编辑必知常识:什么是PV、UV和PR值
  17. RK3568 Android11从入门到实战项目专栏目录及介绍
  18. Linux Nginx启动报错:Failed at step EXEC spawning /etc/rc.d/init.d/nginx: Exec format error.
  19. html lang=en
  20. 漏洞信息收集之——资产梳理

热门文章

  1. 费氏(Fibonacci)数列、最大公约数,最小公倍数
  2. maven移除全部依赖写法 exclude
  3. 华为交换机配置eth-trunk以及模式选择
  4. 2db多少功率_db换算(db和功率的换算)
  5. java 更新word目录_java aspose.words 生成word目录和更新目录
  6. HashMap底层扩容机制是2倍的原理
  7. java空指针异常 代码案例_java空指针异常:java.lang.NullPointException
  8. Unity打包报错 com.android.buil.gradle.internal.tasks.workers$ActionFacade
  9. tomcat启动报错,找不到对应的 queue,从而引发内存泄漏
  10. zookeeper关闭默认管理端口admin.serverPort=8080