????????前段時(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庫(kù)在線預(yù)覽,實(shí)現(xiàn)思路先將js的pdf預(yù)覽庫(kù)導(dǎo)入到assets,在通過js的pdf庫(kù)實(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及以上)赞庶。