zoukankan      html  css  js  c++  java
  • 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.comhttps://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

  • 相关阅读:
    mysql基础之日志管理(查询日志、慢查询日志、错误日志、二进制日志、中继日志、事务日志)
    jQuery1.9.1针对checkbox的调整
    管理 sendmail 的邮件队列
    将以管理员方式运行cmd运行方式放到win7任务栏
    转 git操作小结
    [转]前端CSS规范整理
    jQuery 1.9不支持$.browser 怎么判断浏览器类型和版本
    js闭包陷阱问题
    关于NGINX下开启PHP-FPM 输出PHP错误日志的设置(已解决)
    PHP中cURL错误号对照[转]
  • 原文地址:https://www.cnblogs.com/renhui/p/12021782.html
Copyright © 2011-2022 走看看