1、Word、Excel、PPT 展现
1. 微软Office公开Api接口
若是文档内容不是很机密或者只是须要实现预览文档的话,能够考虑使用微软的公共Api接口实现。html
微软Office公开Api地址为:https://view.officeapps.live.com/op/view.aspx?android
在Android上实现的方式以下:git
首先拼接预览地址URL:github
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文件,而不须要去下载文件。cookie
可是有以下问题:app
如果使用微软的预览接口,你的文档url地址将会被暴露,缺失所谓文档的安全性。
若文件过大时候,加载的速度很慢,有时候还加载不出来。
2. 使用文档浏览Paas服务
服务表明为:腾讯TBS浏览服务(免费)、百度文档DOC服务(收费)。ide
腾讯TBS须要咱们自行实现文件下载,而后调用的方TbsReadView法进行加载。
存在的问题:
a). 加载功能不稳定,有的机型加载正常,有的机型加载存在问题。最多见的问题就是 not supported by:xxx ,此问题很是影响用户体验。
b). 若是没有安装腾讯系的产品,TBS服务是没法使用了,由于腾讯系的产品都是基于X5内核的,TBS服务也是基于X5内核。
百度DOC服务不须要自行实现下载,逻辑相对简单,可是须要收费。
存在的问题:未知(// TODO 目前还未作尝试接入的事情,后续接入体验后再整理 )
2、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