Android 基于x5Webview 浏览文件 office文档
此功能基于腾讯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文档相关推荐
- Android实现在线预览office文档(Word,Pdf,excel,PPT.txt等格式)
1.概述 我们都知道,Android原生并没有提供浏览office文档格式的相关Api,在安卓端想要实现在线预览office文档的功能显然很是复杂,我们手机安装QQ浏览器时,在手机打开office文档 ...
- Vue 预览word,excel,ppt等office文档-内网访问(基于onlyoffice,后端返回文件流)
Vue 预览word,excel等office 先看效果!! 需求背景:在前端页面中预览office文件且是内网访问,服务器不可访问外网的前提. 因此微软的接口就废掉了,因为他接口的条件是可以访问外网 ...
- 基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览
在博客园很多文章里面,曾经有一些介绍Office文档预览查看操作的,有些通过转为PDF进行查看,有些通过把它转换为Flash进行查看,但是过程都是曲线救国,真正能够简洁方便的实现Office文档的预览 ...
- [转载]基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览
在博客园很多文章里面,曾经有一些介绍Office文档预览查看操作的,有些通过转为PDF进行查看,有些通过把它转换为Flash进行查看,但是过程都是曲线救国,真正能够简洁方便的实现Office文档的预览 ...
- (转)基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览
http://www.cnblogs.com/wuhuacong/p/3871991.html 基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览 在博客园很多文章 ...
- Android开发 给应用集成打开office文档的功能
使用TBS来实现打开office文档的功能. 下载腾讯浏览服务 SDK. 网址:https://x5.tencent.com/tbs/sdk.html 将tbs_sdk_thirdapp_v4.3.0 ...
- java将office文档,word,ppt,pdf文档转换成swf文件在线预览
java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux ...
- android在线预览excel文件格式,Android打开doc、xlsx、ppt等office文档解决方案
原标题:Android打开doc.xlsx.ppt等office文档解决方案 1.Android端有什么控件可以直接显示office文档吗? 很抱歉没有,对于ios而言想要显示office文档,直接调 ...
- 基于WEB的Office文档打印——浏览器中静默打印Word文档
web应用开发中,如何集成Office文档打印功能,并不是一个容易实线的问题.现在有了打天下web打印插件,仅以几行JS代码就可以让你将Office打印功能集成到你的Web项目中. 引入PrintWo ...
- java将office文档pdf文档转换成swf文件在线预览
第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...
最新文章
- struts2值栈,OGNL表达式,interceptor
- 5G iPhone消息刺激?苹果股价3连涨市值已超过1.2万亿美元
- DimDate populate data
- 猿创征文|时间序列分析算法之平稳时间序列预测算法和自回归模型(AR)详解+Python代码实现
- mysql5.7 jmeter_JMeter5连接Mysql数据库
- java 获取年和季度_java获取当前时间的年周月季度等的开始结束时间
- openstack(云主机热迁移)
- 拼字法以及98五笔字根码元应用举例
- centos 8 使用 nmcli 配置网桥Bridge(最后有踩坑过程)
- 2012年中国最佳医院排行榜
- 怎么把m4a转换成mp3,分享几个方法给大家!
- 20220317北京雪
- 爬虫基本库之request
- pcf85263 linux驱动源码,PCF85263AT/AJ
- 手机号校验正则表达式
- 机器学习【逻辑回归】——logistic函数逻辑回归鸢尾花分类
- HDFS 关闭安全模式
- 极客时间-算法训练营-第二周
- 对python的认识作文500字_关于启示的作文500字
- 事务隔离级别脏读幻读_脏读和未提交读隔离级别