此功能基于腾讯TBS 的X5Webview 实现

先上图

第一步:下载jar包添加到项目

下载地址 腾讯浏览服务-SDK下载 (tencent.com) 集成看下官方文档

开发时候 测试机Android11 需要先申请11 特殊权限

我在MainActivity里申请的Android 11 文件权限

  public void checkPermissions() {//申请Android11特殊权限requestManagerPermission();}private void requestManagerPermission() {//当系统在11及以上if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {// 没文件管理权限时申请权限if (!Environment.isExternalStorageManager()) {Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);intent.setData(Uri.parse("package:" + getPackageName()));startActivityForResult(intent, 100);}else {Intent intent = new Intent(this,WebActivity.class);startActivity(intent);}}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == 100 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {//用户拒绝权限,重新申请if (!Environment.isExternalStorageManager()) {requestManagerPermission();}}}

创建WebActivity  实现文件下载到sd卡  并且以来x5Webview进行浏览

private void downloadFile(final String url, final String path) {RequestParams requestParams = new RequestParams(url);requestParams.setSaveFilePath(path);// 下载完成后自动为文件命名requestParams.setAutoRename(true);x.http().get(requestParams, new Callback.CacheCallback<File>() {@Overridepublic boolean onCache(File result) {return false;}@Overridepublic void onSuccess(File result) {Log.d("success", "下载成功" + path);// 下载成功后加载文件displayFile(BASE_PATH, docName);}@Overridepublic void onError(Throwable ex, boolean isOnCallback) {Log.e("success", "下载失败" + ex.getMessage().toString());Toast.makeText(WebActivity.this, "文件下载失败", Toast.LENGTH_SHORT).show();}@Overridepublic void onCancelled(CancelledException cex) {}@Overridepublic void onFinished() {}});}@Overrideprotected void onDestroy() {super.onDestroy();mTbsReaderView.onStop();}@Overridepublic void onCallBackAction(Integer integer, Object o, Object o1) {Log.d("call", "==================+++++====-=-=++" + integer);}private void displayFile(String filePath, String fileName) {//增加下面一句解决没有TbsReaderTemp文件夹存在导致加载文件失败String bsReaderTemp =BASE_PATH;File bsReaderTempFile = new File(bsReaderTemp);if (!bsReaderTempFile.exists()) {Log.e("print", "准备创建/TbsReaderTemp!!");boolean mkdir = bsReaderTempFile.mkdir();if (!mkdir) {Log.e("print", "创建/TbsReaderTemp失败!!!!!");}}Bundle bundle = new Bundle();bundle.putString("filePath", filePath);bundle.putString("tempPath", BASE_PATH);boolean result = mTbsReaderView.preOpen(getFileType(filePath.toString()), false);Log.e("print", "查看文档---" + result);if (result) {mTbsReaderView.openFile(bundle);} else {}}/*** 后缀名的判断** @param paramString* @return*/private String getFileType(String paramString) {String str = "";if (TextUtils.isEmpty(paramString)) {Log.e("print", "paramString---->null");return str;}Log.e("print", "paramString:" + paramString);int i = paramString.lastIndexOf('.');if (i <= -1) {Log.e("print", "i <= -1");return str;}str = paramString.substring(i + 1);Log.e("print", "paramString.substring(i + 1)------>" + str);return str;}

xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><RelativeLayoutandroid:id="@+id/tbsView"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/teal_200"/></LinearLayout>

下载地址 demo   写于2022-3-23   联系作者 352679497@qq.com

Android 基于x5Webview 浏览文件 office文档相关推荐

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

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

  2. Vue 预览word,excel,ppt等office文档-内网访问(基于onlyoffice,后端返回文件流)

    Vue 预览word,excel等office 先看效果!! 需求背景:在前端页面中预览office文件且是内网访问,服务器不可访问外网的前提. 因此微软的接口就废掉了,因为他接口的条件是可以访问外网 ...

  3. 基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览

    在博客园很多文章里面,曾经有一些介绍Office文档预览查看操作的,有些通过转为PDF进行查看,有些通过把它转换为Flash进行查看,但是过程都是曲线救国,真正能够简洁方便的实现Office文档的预览 ...

  4. [转载]基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览

    在博客园很多文章里面,曾经有一些介绍Office文档预览查看操作的,有些通过转为PDF进行查看,有些通过把它转换为Flash进行查看,但是过程都是曲线救国,真正能够简洁方便的实现Office文档的预览 ...

  5. (转)基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览

    http://www.cnblogs.com/wuhuacong/p/3871991.html 基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览 在博客园很多文章 ...

  6. Android开发 给应用集成打开office文档的功能

    使用TBS来实现打开office文档的功能. 下载腾讯浏览服务 SDK. 网址:https://x5.tencent.com/tbs/sdk.html 将tbs_sdk_thirdapp_v4.3.0 ...

  7. java将office文档,word,ppt,pdf文档转换成swf文件在线预览

    java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux ...

  8. android在线预览excel文件格式,Android打开doc、xlsx、ppt等office文档解决方案

    原标题:Android打开doc.xlsx.ppt等office文档解决方案 1.Android端有什么控件可以直接显示office文档吗? 很抱歉没有,对于ios而言想要显示office文档,直接调 ...

  9. 基于WEB的Office文档打印——浏览器中静默打印Word文档

    web应用开发中,如何集成Office文档打印功能,并不是一个容易实线的问题.现在有了打天下web打印插件,仅以几行JS代码就可以让你将Office打印功能集成到你的Web项目中. 引入PrintWo ...

  10. java将office文档pdf文档转换成swf文件在线预览

    第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...

最新文章

  1. struts2值栈,OGNL表达式,interceptor
  2. 5G iPhone消息刺激?苹果股价3连涨市值已超过1.2万亿美元
  3. DimDate populate data
  4. 猿创征文|时间序列分析算法之平稳时间序列预测算法和自回归模型(AR)详解+Python代码实现
  5. mysql5.7 jmeter_JMeter5连接Mysql数据库
  6. java 获取年和季度_java获取当前时间的年周月季度等的开始结束时间
  7. openstack(云主机热迁移)
  8. 拼字法以及98五笔字根码元应用举例
  9. centos 8 使用 nmcli 配置网桥Bridge(最后有踩坑过程)
  10. 2012年中国最佳医院排行榜
  11. 怎么把m4a转换成mp3,分享几个方法给大家!
  12. 20220317北京雪
  13. 爬虫基本库之request
  14. pcf85263 linux驱动源码,PCF85263AT/AJ
  15. 手机号校验正则表达式
  16. 机器学习【逻辑回归】——logistic函数逻辑回归鸢尾花分类
  17. HDFS 关闭安全模式
  18. 极客时间-算法训练营-第二周
  19. 对python的认识作文500字_关于启示的作文500字
  20. 事务隔离级别脏读幻读_脏读和未提交读隔离级别

热门文章

  1. LFW人脸数据集测试协议及编程实现
  2. 5G信令7——Service Request
  3. Java学生管理系统(数组版)
  4. 关于office2016和visio2016无法共存的问题
  5. 纯前端实现pdf分页下载,完美支持横屏竖屏
  6. 【模拟电路】PID简介
  7. 阿里fastjson 对象转JSON
  8. ssh 免密配置、修改hadoop配置文件
  9. 设计模式之依赖倒置原则
  10. WIN10超级终端下载链接及使用教程