*## 在线预览office文档
我就直奔主题吧!估计是目前最简单的了吧!
我也搜了很多资料不外乎2种

  1. 使用谷歌文档服务(google国内使用不了,各种试就是显示不出来,)
    mWebView.loadUrl("http://docs.google.com/gviewembedded=true&url=" + pdfUrl);
    就是google的文档服务地址+自己服务器文档地址用webview加载就可以,奇葩的是google他不给你用啊!所以不推荐!记住是不推荐!你试了也是出不来

  2. 使用腾讯的TBS预览文档(腾讯浏览服务)
    这个也还好用,首先接入TBS – SDK 其次如果文档再服务器你需要下载文件然后在显示!这个多了一个下载服务器文档这一步(这里你得处理下载的这个文档,预览完你删不?重复下载?刨除这个如果文件过大你得等到花儿红了,还得做异步下载…总之后期处理很麻烦)所以我也不推荐! 当然相关资料很多我就不贴了,自己搜索一下 一大堆

  3. kkFileView为文件文档在线预览(kkFileView)
    这个三方需要后台部署,具体可以问问你的团队后台伙伴
    后台部署完成后会给你一个预览地址 http://00.000.00.000:0000/onlinePreview?url= 类似这个
    那么接下来就是重点了 那么安卓具体是这样做的 (涉及到H5交互)

    1. 创建一个.html文件至accets目录下(下面是文件内容)
    <html><script  type="text/javascript">function urlChange(url) {return encodeURIComponent(url) //encodeURIComponent进行文件url转码返回安卓页面}
    </script></html>
    

    2.安卓xml布局文件

        <WebViewandroid:id="@+id/webView"android:layout_width="match_parent"android:layout_height="0dp"app:layout_constraintBottom_toBottomOf="parent"android:visibility="visible"app:layout_constraintTop_toBottomOf="@id/toolbar" />
    1. kotlin代码(java代码类似)
viewDataBinding.web.loadUrl("file:///android_asset/show.html")//获取accets目录下html文件val script:String = "javascript:urlChange('http://000.000.00.0:0000/000.ppt')"//urlChange(url) 这个方法调用本地html种的js方法,url参数是你服务器的文件地址viewDataBinding.web.evaluateJavascript(script) { value ->//此方法是获取本地HTML文件return回来的数据 value//携带参数value跳转公共webview类//最终url 为服务器预览地址 + valuearouterBuild(RouterPageConstant.VIDEO_TEST).withString("value","http://00.000.00.000:0000/onlinePreview?url=${stringReplace(vas)}") //stringReplace这个方法是一个取消双引号的方法.navigation()}
//跳转新页面后把value给安卓自带webview就可以了viewDataBinding.webView.loadUrl(value)
//使用这个方法是有时候回调回来的value不知道怎么滴就多了个双引号  会导致webview加载不出来 一定要注意fun stringReplace(str: String): String? { //去掉" "号return str.replace("\"", "")}

那么这样就可以了 最后会发现webview加载文档速度很慢 我们这样处理

//1、mainfaests 当前页面增加硬件加速
android:hardwareAccelerated="true"
//2、 代码中硬件加速____设置webview参数后添加
if ( viewDataBinding.webView.isHardwareAccelerated)viewDataBinding.webView.setLayerType(View.LAYER_TYPE_HARDWARE,null);
//3、附赠webview 配置参数webSettings.apply {javaScriptEnabled = truejavaScriptCanOpenWindowsAutomatically = truesetSupportZoom(true)builtInZoomControls = truedisplayZoomControls = falseuseWideViewPort = true //集WebView是否应该使支持“视窗”HTML meta标记或应该使用视窗。loadWithOverviewMode = true //是否使用WebView加载页面,也就是说,镜头拉出宽度适合在屏幕上的内容。cacheMode = WebSettings.LOAD_DEFAULT //缓存allowFileAccess = true //加载文件setAppCacheEnabled(true) // 设置H5的缓存打开domStorageEnabled = truesetAppCacheEnabled(true)defaultTextEncodingName = "UTF-8"setAppCachePath(applicationContext.cacheDir.absolutePath)domStorageEnabled = truedatabaseEnabled = true}

这个是全网独有方式!觉得好的话点个赞吧!
期待留言 如果适用 我后期传demo!

安卓WebView在线预览office文档功能实现相关推荐

  1. web项目使用OpenOffice实现前端在线预览office文档(超详细)

    超详细的OpenOffice实现前端在线预览office文档记录 最近搞一个数字化共享平台,是一个java web项目,使用框架ssm,其中项目有一个需要在线预览PDF.excle.ppt.word文 ...

  2. Android实现在线预览office文档(Word,Pdf,excel,PPT.txt等格式)

    1.概述 我们都知道,Android原生并没有提供浏览office文档格式的相关Api,在安卓端想要实现在线预览office文档的功能显然很是复杂,我们手机安装QQ浏览器时,在手机打开office文档 ...

  3. java预览openoffice_web使用openoffice实现在线预览office文档

    最近搞web项目,使用框架struts+spring+jpa实现,做到项目里面一个在线预览功能,试过无数的方法,最后得到了一个非常使用的方法,这方法也是我看过多篇博客的出来的,仅限参考. 效果图如下: ...

  4. web使用openoffice实现在线预览office文档

    最近搞web项目,使用框架struts+spring+jpa实现,做到项目里面一个在线预览功能,试过无数的方法,最后得到了一个非常使用的方法,这方法也是我看过多篇博客的出来的,仅限参考. 效果图如下: ...

  5. Office文档上传后实时转换为PDF格式_图片文件上传后实时裁剪_实现在线预览Office文档

    Office文档上传后实时转换为PDF格式_图片文件上传后实时裁剪 前置条件 安装LibreOffice 安装OpenOffice 安装Unoconv 安装ImageMagick.x86_64 安装G ...

  6. 利用微软的Office Online在线预览Office文档

    一个url就可以访问了: https://view.officeapps.live.com/op/view.aspx?src=文件地址 这个文件地址需满足以下几个条件: (1)在浏览器是可以访问的: ...

  7. web项目 在线预览doc文档

    在线预览word文档 前端代码 后台controller代码(使用Aspose.Words) 前端代码 在前端发送ajax请求,并展示后端生成的html临时文件 showFile:function(m ...

  8. 在线预览word文档

    在线预览word文档 在线预览word文档 Java 使用wps将word文件转换pdf文件 转成PDF 在线预览word(转成pdf)前端展示 欢迎来提更好的意见 在线预览word文档 昨天下午组长 ...

  9. Springboot 超简单实现在线预览,Word文档 doc、xlsx、pdf、txt等

    前言 PDF.TXT 只要资源可访问,根本就不需要进行任何处理,直接访问查看就完事了. 也是因为这个PDF可以直接查看(现在浏览器基本支持了),那么我们实现Word文档在线预览,其实也是 把WORD文 ...

最新文章

  1. ppct各代表什么_开关背面L、L1、L2各代表什么?火线,零线,地线怎样接?
  2. 京东面试题:二叉树直径
  3. bartender2020中文版
  4. js 数组 实现 完全树_算法和数据结构 | 树状数组(Binary Indexed Tree)
  5. 基于 HTML5 网络拓扑图的快速开发之入门篇(二)
  6. php简单网页制作代码,用HTML和CSS以及JS制作简单的网页菜单界面的代码
  7. 快速迁移Next.js应用到函数计算
  8. 解读SSL ***技术(二)
  9. border属性 php,如何通过CSS的border属性为图片设置边框效果
  10. fs和php的区别,优缺点评测飞科fs318和fs360有啥区别?哪个好?真实评测体验曝光...
  11. 蓝桥杯2017年第八届C/C++省赛B组第一题-购物单
  12. 【洛谷】【线段树】P1047 校门外的树
  13. Linux系统发布ASP.NET项目
  14. 人工智能常用英文缩写
  15. 【SpringBoot高级篇】springboot实现上传docdocx文件格式转pdf在线预览
  16. 教你轻松查看QQ空间加密后的好友图片
  17. springboot-单文件多文件下载Zip
  18. 投影仪的对比度多少合适,当贝X3高亮对比度和电视基本一样
  19. Mininet--topo类型-py创建自定义拓扑网络
  20. ogg在DDL语句同步时出现[Error code [942], ORA-00942的分析

热门文章

  1. python写spark_Spark2.1.0+入门:文件数据读写(Python版)
  2. 7款特殊版手机电脑磁力软件安装包下载,包括qBittorrent
  3. 斯坦福大学自然语言处理的QA数据集SQuAD
  4. c2000 电阻采样_采样电阻特点
  5. 多事之秋-最近在阿里云上遇到的问题:负载均衡失灵、服务器 CPU 100%、被 DDoS 攻击...
  6. 高中学历的我,为什么放弃医院的工作转行互联网?
  7. 安全审计技术功能概述
  8. 转载文章要授权,真那么难吗?我现在教你…(新技能Get√)
  9. iphone开发的几个Apple官方中文教程地址
  10. php 后缀文件怎么打开,php是什么文件格式,php扩展名文件如何打开?