android 你所不知道的word,pdf預(yù)覽方案

????????前段時(shí)間開發(fā)需求要實(shí)現(xiàn)在android端預(yù)覽下載下來的word和pdf文件,在此總結(jié)一下幾種實(shí)現(xiàn)方案供大家參考(第三方平臺(tái)在此就不介紹了~).

demo下載地址:????download.csdn.net/download/qq_32840093/10121883

?一 PDF格式文件 展示:

? ? ? ? ? (1)https://github.com/JoanZapata/android-pdfview????此三方控件只支持項(xiàng)目assets目錄下的pdf文件展示

? ? ? ? ? (2)https://github.com/barteksc/AndroidPdfViewer????此三方控件支持手機(jī)本地文件,項(xiàng)目assets目錄下的pdf文件展示;

? ? ? ? ??(3)?使用js的pdf庫在線預(yù)覽,實(shí)現(xiàn)思路先將js的pdf預(yù)覽庫導(dǎo)入到assets,在通過js的pdf庫實(shí)現(xiàn)預(yù)覽,產(chǎn)考demo實(shí)例代碼(可能會(huì)會(huì)應(yīng)為跨域的問題失效)

二 office文件(doc,docx,xls,xlsx,ppt,pptx) 展示:

????????1 最簡(jiǎn)單的方法是通過隱式intent調(diào)用手機(jī)中的文檔處理相關(guān)的app,打開并處理此類文檔;

/**

* 調(diào)用手機(jī)中安裝的可打開word的軟件

*/

private voiddoOpenWord(){

Intent intent =newIntent();

intent.setAction("android.intent.action.VIEW");

intent.addCategory("android.intent.category.DEFAULT");

String fileMimeType ="application/msword";

intent.setDataAndType(Uri.fromFile("預(yù)覽文件"),fileMimeType);

try{

MainActivity.this.startActivity(intent);

}catch(ActivityNotFoundException e) {

//檢測(cè)到系統(tǒng)尚未安裝OliveOffice的apk程序

Toast.makeText(MainActivity.this,"未找到軟件",Toast.LENGTH_LONG).show();

//請(qǐng)先到www.olivephone.com/e.apk下載并安裝

}

}

????????2 如果項(xiàng)目需求必須要在應(yīng)用內(nèi)部打開office文檔則相對(duì)復(fù)雜一些,處理方式如下:

網(wǎng)上有很多關(guān)于此類問題的解決辦法,但是大部分都是使用java中的apache poi來處理office文檔,缺點(diǎn)就是如果不太熟悉poi的使用則會(huì)消耗大量學(xué)習(xí)成本,并且在android環(huán)境下使用poi可能會(huì)遇到丟失某些類的問題(因?yàn)閍ndroid只支持部分java api),將poi中相應(yīng)的jar包加入項(xiàng)目還可能會(huì)遇到打包65535的問題;

一個(gè)快速的解決方法:

如果項(xiàng)目需求只要求預(yù)覽內(nèi)容而不要求對(duì)文檔進(jìn)行編輯的操作,則可以選擇在線預(yù)覽的方式進(jìn)行處理;

現(xiàn)附上兩個(gè)在線預(yù)覽office文檔的地址:(瀏覽器都需要chrome的內(nèi)核),這個(gè)方法還是很雞肋的,不翻墻是達(dá)不到預(yù)覽效果.

1 google:https://docs.google.com/viewer?url=(輸入你的文檔在服務(wù)器中的地址);

2 微軟:https://view.officeapps.live.com/op/view.aspx?src=(輸入你的文檔在服務(wù)器中的地址);

關(guān)于是否使用原生的webview或是使用優(yōu)化后的webview,則根據(jù)項(xiàng)目中的minSdkVersion來自行選擇;(android4.4之前webview使用的是webket內(nèi)核,4.4以上使用的是chrome內(nèi)核)。

推薦使用一個(gè)優(yōu)化后的webview:https://github.com/delight-im/Android-AdvancedWebView(支持android2.2及以上)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,733評(píng)論 25 709
  • afinalAfinal是一個(gè)android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,835評(píng)論 2 45
  • 有多久沒見面 數(shù)著數(shù)著 從春天走到了冬天 由期待變?yōu)榱似椒?你會(huì)來找我嗎 在虛擬的世界 即使換了一切 也能認(rèn)得我 ...
    柚寶媽咪閱讀 380評(píng)論 6 10
  • 寫在過年的前幾天。 周末,上班中,相信北漂的很多小伙伴都是這樣吧, 當(dāng)然,有些人是例外的,現(xiàn)在,已經(jīng)早早地回到了家...
    弟白閱讀 580評(píng)論 0 0
  • 文|北辰星海 村里要改建成游樂園了,兔奶奶和許多鄉(xiāng)親們被迫搬出了住了幾十年的家。兔奶奶是這個(gè)村中最年長的動(dòng)物了,這...
    北辰星海閱讀 460評(píng)論 3 3

友情鏈接更多精彩內(nèi)容