这篇文章主要介绍了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文件预览内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:Android 通过腾讯TBS实现文件预览功能
基础教程推荐
- Android实现短信验证码输入框 2023-04-29
- Android开发Compose集成高德地图实例 2023-06-15
- iOS中如何判断当前网络环境是2G/3G/4G/5G/WiFi 2023-06-18
- Android Compose自定义TextField实现自定义的输入框 2023-05-13
- MVVMLight项目Model View结构及全局视图模型注入器 2023-05-07
- iOS开发使用XML解析网络数据 2022-11-12
- iOS开发 全机型适配解决方法 2023-01-14
- iOS Crash常规跟踪方法及Bugly集成运用详细介绍 2023-01-18
- IOS获取系统相册中照片的示例代码 2023-01-03
- Flutter进阶之实现动画效果(三) 2022-10-28