Android 通过腾讯TBS实现文件预览功能
时间:2022-07-27
本文章向大家介绍Android 通过腾讯TBS实现文件预览功能,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.集成腾讯TBS
使用腾讯TBS来预览pdf,word,excel,ppt等多种类型的文件,去 腾讯浏览服务官网下载SDK,按照官方文档文档集成SDK。
2.使用TbsReaderView来加载文件
动态创建TbsReaderView,然后添加到布局中。
// 回调
TbsReaderView.ReaderCallback readerCallback = new TbsReaderView.ReaderCallback() {
@Override
public void onCallBackAction(Integer integer, Object o, Object o1) {
} };
tbsReaderView = new TbsReaderView(this, readerCallback);
RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
params.addRule(RelativeLayout.BELOW,R.id.title_layout);
//把tbsReaderView添加在标题控件下面
layout.addView(tbsReaderView,1,params);
//文件地址
String filePath=getIntent().getStringExtra("filePath");
//文件名
String fileName=getIntent().getStringExtra("fileName");
//加载文件
displayFile(filePath,fileName);
//加载文件
private void displayFile(String filePath, String fileName) {
//增加下面一句解决没有TbsReaderTemp文件夹存在导致加载文件失败
String bsReaderTemp = tbsReaderTemp;
File bsReaderTempFile =new File(bsReaderTemp);
if (!bsReaderTempFile.exists()) {
Log.d("print","准备创建/TbsReaderTemp!!");
boolean mkdir = bsReaderTempFile.mkdir();
if(!mkdir){
Log.d("print","创建/TbsReaderTemp失败!!!!!");
}
}
Bundle bundle = new Bundle();
bundle.putString("filePath", filePath);
bundle.putString("tempPath", tbsReaderTemp);
boolean result = tbsReaderView.preOpen(getFileType(fileName), false);
Log.d("print","查看文档---"+result);
if (result) {
tbsReaderView.openFile(bundle);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
//销毁界面的时候一定要加上,否则后面加载文件会发生异常。
tbsReaderView.onStop();
}
3.其他说明
1、加载文件核心类是 TbsReaderView,腾讯文档没有写,TbsReaderView建议通过动态创建,不要使用xml中引用;
2、TBS目前只支持加载本地文件。所以远程文件需要先下载,后用TBS加载文件显示;
3、加载文件的界面,离开本界面之后务必销毁TbsReaderView,否则再次加载文件无法加载成功,会一直显示加载文件进度条;代码如下:tbsReaderView.onStop();
4.腾讯TBS可以代替原生WebView,效率更高,功能更强大。
总结
到此这篇关于Android 通过腾讯TBS实现文件预览功能的文章就介绍到这了,更多相关android 腾讯TBS文件预览内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!
- Linux | CentOS7下会玩JDK不?你确定?
- Linux | 不懂Linux的码神,不是真正的菜鸟
- 初体验Spring Boot 2支持的HikariCP连接池
- 快来了解JDK10中引入的全新JIT编译器:Graal
- 基于Ryu打造自定义控制器
- Junit 5新特性全集
- 深入了解浏览器的重绘与重排
- 自己动手写区块链(Java版)
- 自己动手写区块链-发起一笔交易(Java版)
- 详解JavaScript跨域问题
- OpenStack Magnum及Liberty新功能简介
- JDK10要来了:下一代 Java 有哪些新特性?
- 是时候忘掉finalize方法了
- 学会一个JVM插件:使用HSDIS反汇编JIT生成的代码
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 火遍全网的自热火锅哪款最好吃?我们用Python告诉你!
- 剑指offer第10题:矩阵中的路径
- 同事牛逼啊,写了个隐藏 bug,我排查了 3 天才解决问题!
- 使用PyTorch的TensorBoard-可视化深度学习指标 | PyTorch系列(二十五)
- 技术分享 | 只有.frm和.ibd文件时如何批量恢复InnoDB的表
- 14个 JavaScript 代码优化技巧
- 你写注释吗?写你就输了
- 跨端框架模板解析引擎了解一下
- 【Java】基础04:Java虚拟机
- 【Java】基础07:常量、变量和数据类型
- 【Java】基础08:数据类型的转换
- 【Java】基础09:运算符
- MYSQL 监控 performance_schema 拿得起 不放下(1))
- AkShare-股票数据-交易日历
- AkShare-股票数据-股票指数历史成份