小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Android App內(nèi)文檔展示方案整理

 小仙女本仙人 2022-01-02

一、Word、Excel、PPT 展示

1. 微軟Office公開Api接口

如果文檔內(nèi)容不是很機密或者只是需要實現(xiàn)預(yù)覽文檔的話,可以考慮使用微軟的公共Api接口實現(xiàn)。

微軟Office公開Api地址為:https://view.officeapps./op/view.aspx?

在Android上實現(xiàn)的方式如下:

首先拼接預(yù)覽地址URL:

https://view.officeapps./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);
}

// 優(yōu)先渲染界面
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操作的設(shè)置)
 * 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拼接到連接上即可實現(xiàn)在線預(yù)覽office文件,而不需要去下載文件。

但是有如下問題:

  • 若是使用微軟的預(yù)覽接口,你的文檔url地址將會被暴露,缺失所謂文檔的安全性。
  • 若文件過大時候,加載的速度很慢,有時候還加載不出來。

2. 使用文檔瀏覽Paas服務(wù)

服務(wù)代表為:騰訊TBS瀏覽服務(wù)(免費)、百度文檔DOC服務(wù)(收費)。

對應(yīng)的地址:https://x5.tencent.comhttps://cloud.baidu.com/doc/DOC/s/hjwvypsgp

騰訊TBS需要我們自行實現(xiàn)文件下載,然后調(diào)用的方TbsReadView法進行加載。

存在的問題:

a). 加載功能不穩(wěn)定,有的機型加載正常,有的機型加載存在問題。最常見的問題就是 not supported by:xxx ,此問題非常影響用戶體驗。

b). 如果沒有安裝騰訊系的產(chǎn)品,TBS服務(wù)是無法使用了,因為騰訊系的產(chǎn)品都是基于X5內(nèi)核的,TBS服務(wù)也是基于X5內(nèi)核。

需要注意X5內(nèi)核部分版本存在內(nèi)存泄漏,需要在onDestory添加如下邏輯:

@Override
protected void onDestroy() {
     try {
        if (webView != null) {
             webView.stopLoading();
             webView.removeAllViewsInLayout();
             webView.removeAllViews();
             CookieSyncManager.getInstance().stopSync();    
             webView.destroy();
             webView = null;
        }
     } catch (Throwable throwable) {
         throwable.printStackTrace();
     } finally {
         super.onDestroy();
     }
}

二、PDF 展示

1. 使用騰訊TBS服務(wù)

此方案基本和office文件加載的方案一樣,至于存在的問題也是一樣的。這里就多贅述了。

可參考開源項目:https://github.com/ZhongXiaoHong/superFileView

2. AndroidPdfViewer

開源項目地址:https://github.com/barteksc/AndroidPdfViewer

開發(fā)參考文章:https://www.cnblogs.com/qixingchao/p/11658226.html

3. PdfViewPager

開源項目地址:https://github.com/voghDev/PdfViewPager

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多