Android App內文檔展現方案整理

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

對應的地址:https://x5.tencent.comhttps://cloud.baidu.com/doc/DOC/s/hjwvypsgpui

騰訊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

相關文章
相關標籤/搜索