android在App應用內打開word、xls、pdf等office文檔(基於騰訊tbs)


 

疫情還沒結束,需求已經開始,捂上口罩來開工了。

(也好,戴口罩不用化妝,省錢了)

 

 

需求是像微信收藏里那樣,列表里有不同類型的文件(office文檔,視頻,圖片,音頻),點擊查看

圖片和音視頻是可以直接用webview的,office文檔的話,自己解析肯定是不能夠了,看網上都是用騰訊SDK——TBS,然后跟着去GitHub找了很多demo,放在項目里卻都用不了

 

最后整合了幾個demo里的代碼使用 ,終於可以了 

 

 首先下載tbs的jar包放在libs目錄下,並在項目中引入


 SDK官方下載地址:http://x5.tencent.com/tbs/sdk.html

 

將so包放在jniLib下,不過這個so包只支持32位的手機,不支持64位的,所以build.gradle下的defaultConfig{}中加入ndk配置

 

 

 雖然網上都說CPU的架構要只加載armeabi,但是我項目中有其他沖突的SDK,必須得放個armeabi-v7a

我在build.gradle中做如下設置是沒問題的

 

清單文件中需具備以下權限

1 <uses-permission android:name="android.permission.INTERNET" />
2 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
3 <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/>
4 <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/>
5 <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
6 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

 

效果圖

  》》》   》》》           

 

GitHub源碼:https://github.com/yangxch/TBSFileBrowsing

 

原文章是https://blog.csdn.net/xch_yang/article/details/80989631

 

但是我使用作者的方法在android9.0以下都可以打開office,9.0以上就不行,提示插件加載失敗之類的,之后在自定義的Application類里加上了提前初始化X5內核的代碼

 1 //初始化tbs的x5
 2         QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
 3 
 4             @Override
 5             public void onViewInitFinished(boolean arg0) {
 6                 // TODO Auto-generated method stub
 7                 //x5內核初始化完成的回調,為true表示x5內核加載成功,否則表示x5內核加載失敗,會自動切換到系統內核。
 8             }
 9 
10             @Override
11             public void onCoreInitFinished() {
12                 // TODO Auto-generated method stub
13             }
14         };
15         QbSdk.initX5Environment(this,cb);

這樣再跑在9.0的手機上就可以了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM