Android App内文档展示方案整理
一、Word、Excel、PPT 展示
1. 微软Office公开Api接口
如果文档内容不是很机密或者只是需要实现预览文档的话,可以考虑使用微软的公共Api接口实现。
微软Office公开Api地址为:https://view.officeapps.live.com/op/view.aspx?
在Android上实现的方式如下:
首先拼接预览地址URL:
https://view.officeapps.live.com/op/view.aspx?src=http://xxx.pptx
然后使用WebView加载此URL。推荐配置如下:
WebSettings settings = mWebView.getSettings();
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
settings.setSaveFormData(true);
settings.setSavePassword(true);
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setSupportZoom(true); /*
* 支持HTTPS、HTTP混合模式
* http://blog.csdn.net/qq_16472137/article/details/54346078
*/
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
} // 优先渲染界面
settings.setRenderPriority(WebSettings.RenderPriority.HIGH); // Technical settings
settings.setSupportMultipleWindows(true); settings.setCacheMode(WebSettings.LOAD_DEFAULT);
settings.setAppCacheEnabled(true);
settings.setDatabaseEnabled(true);
settings.setDomStorageEnabled(true);
settings.setAppCacheMaxSize(8 * 1024 * 1024); // 缓存最多可以有8M /* 支持cookies 5.0以上的手机不支持自动同步第三方cookies
*(一般都是iframe里面的页面要存储cookies操作的设置)
* http://blog.sina.com.cn/s/blog_6e73239a0102viku.html
*/
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
CookieManager.getInstance().setAcceptThirdPartyCookies(mWebView, true);
} // WebView 默认都是支持cookies
CookieManager.getInstance().setAcceptCookie(true);
注意:此使用方式是将文档的URL拼接到连接上即可实现在线预览office文件,而不需要去下载文件。
但是有如下问题:
- 若是使用微软的预览接口,你的文档url地址将会被暴露,缺失所谓文档的安全性。
- 若文件过大时候,加载的速度很慢,有时候还加载不出来。
2. 使用文档浏览Paas服务
服务代表为:腾讯TBS浏览服务(免费)、百度文档DOC服务(收费)。
对应的地址:https://x5.tencent.com、https://cloud.baidu.com/doc/DOC/s/hjwvypsgp
腾讯TBS需要我们自行实现文件下载,然后调用的方TbsReadView法进行加载。
存在的问题:
a). 加载功能不稳定,有的机型加载正常,有的机型加载存在问题。最常见的问题就是 not supported by:xxx ,此问题非常影响用户体验。
b). 如果没有安装腾讯系的产品,TBS服务是无法使用了,因为腾讯系的产品都是基于X5内核的,TBS服务也是基于X5内核。
百度DOC服务不需要自行实现下载,逻辑相对简单,但是需要收费。
存在的问题:未知(// TODO 目前还未做尝试接入的事情,后续接入体验后再整理 )
二、PDF 展示
1. 使用腾讯TBS服务
此方案基本和office文件加载的方案一样,至于存在的问题也是一样的。这里就多赘述了。
2. AndroidPdfViewer
开源项目地址:https://github.com/barteksc/AndroidPdfViewer
开发参考文章:https://www.cnblogs.com/qixingchao/p/11658226.html
3. PdfViewPager
开源项目地址:https://github.com/voghDev/PdfViewPager
Android App内文档展示方案整理的更多相关文章
- Android根据word模板文档将表单数据生成word文档的方案整理
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 尝试的方案包括以下几种: freemarker 只能在java项目上运行,无法在Android项目上运行: 参考资料:<Fre ...
- PoiDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 使用Poi实现android中根据模板文件生成Word文档的功能.这里的模板文件是doc文件.如果模板文件是docx文件的话,请阅读 ...
- 开源整理:Android App新手指引开源控件
开源整理:Android App新手指引开源控件 一个App第一次与用户接触或者发生大版本更新时,常常会用户进行新手引导,而一个好的新手指引,往往能够方便新用户快速了解操作你的应用功能.新手指引的重要 ...
- 转载: 开源整理:Android App新手指引开源控件
http://blog.coderclock.com/2017/05/22/android/open-source-android-app-guide-view-library/ 开源整理:Andro ...
- Android APP开发需求文档范本
Android APP开发需求文档范本 软件需求文档格式的标准写法 1.引言 1.1 编写目的 • 阐明开发本软件的目的: 1.2 项目背景 • 标识待开发软件产品的名称.代码: • 列出本项目的任 ...
- PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个是<PoiDemo[Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)]>的扩展,上一篇是根 ...
- Android App签名打包 与 SDK开发文档
Android App签名打包签名的意义1.为了保证每个程序开发者的合法权益2.放置部分人通过使用相同的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改3.保证我们每次发布的版本 ...
- Android APP性能及专项测试(个人整理)
移动测试. Android测试 .APP测试 Android篇 1. 性能测试 Android性能测试分为两类:1.一类为rom版本(系统)的性能测试2.一类为应用app的性能测试 Android ...
- fir.im Weekly - 如何进行 Android App 性能优化
关于 Android App 的优化,@anly-jun 用 3 个月完成了这一系列文章,从 性能分析工具 到 ANR .Layout .消除卡顿 到 内存优化.内存分析工具大概十五六篇,并对此做一个 ...
随机推荐
- 阿里P7整理“硬核”面试文档:Java基础+数据库+算法+框架技术等
现在的程序员越来越多,大部分的程序员都想着自己能够进入大厂工作,但每个人的能力都是有差距的,所以并不是人人都能跨进BATJ.即使如此,但身在职场的我们一刻也不能懈怠,既然对BATJ好奇,那么就要朝这个 ...
- Python Kite 使用教程 轻量级代码提示
1: 概述 今天升级annacoda 插件 spyder (4.0.0 )的时候 提示安装kite ,这是什么玩意? 下载下来试一试? 原来:就是一个代码提示插件.. 说白了" 就是让开发 ...
- 虚拟化--思杰citrix
目前虚拟化主要有vmware,微软,思杰 一:从硬件搭建开始 硬件需要问的几个问题: a.负载均衡.防火墙.路由器怎么配置? b.新增一块存储的话,怎么新增? 二:安装citrix xen serve ...
- js前端数据验证JS工具
var regexEnum = { intege : "^-?[1-9]\\d*$", // 整数 intege1 : "^[1-9]\\d*$", // 正整 ...
- php 7.4 的 Unpacking inside arrays (...)
总的说明 php 7.4 增加了一个很有意思的功能 这是官方说明: Unpacking inside arrays <?php$parts = ['apple', 'pear'];$fruits ...
- 《Windows内核安全与驱动开发》 2.3 重要的数据结构
<Windows内核安全与驱动开发>阅读笔记 -- 索引目录 <Windows内核安全与驱动开发> 2.3 重要的数据结构 一.驱动对象 Windows内核采用__的编程方式 ...
- JS的Form表单转JSON格式
一.serialize()方法 格式:var data = $("#formID").serialize(); 功能:将表单内容序列化成一个字符串. 注意:要使用params = ...
- Python装饰器总结,带你几步跨越此坑!
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...
- Ctrl + Shift + F7 ; F3、Shift + F3
pycharm 查找并高亮参数 选中某一参数,Ctrl + Shift + F7 高亮所有该文件中所有该参数 接下来, 按 F3 在所有高亮选择中向下移动一个, Shift + F3 在所有高亮选择 ...
- hibernate查询方式(四)
---恢复内容开始--- 1.mysql中的多表联合查询 ****/*内连接查询*/ 只显示两个表有关联的记录 //第一种 SELECT * FROM Class c ,Student s WHER ...