如果你的app當(dāng)中需要瀏覽文件(word调榄、excel恃慧、ppt趟咆、pdf添瓷、txt...)的功能,那么TBS騰訊瀏覽服務(wù)提供的文件解決能力是你一個(gè)不錯(cuò)的選擇值纱。
關(guān)于這方面的介紹可以去官網(wǎng)詳細(xì)了解鳞贷。
接入
文件解決能力是依賴于x5內(nèi)核的,因此第一步就是要接入x5內(nèi)核(接入文檔):
-
添加jar包虐唠。
下載sdk時(shí)要選擇包含文件能力的那個(gè)搀愧,如下:
sdk包括如下文件:
其中第一個(gè)就是要添加的jar,第二個(gè)pdf文檔是文件能力的接入文檔凿滤。
- 加入權(quán)限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
- 在application的onCreate中加載x5內(nèi)核
//搜集本地tbs內(nèi)核信息并上報(bào)服務(wù)器妈橄,服務(wù)器返回結(jié)果決定使用哪個(gè)內(nèi)核。
QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
@Override
public void onViewInitFinished(boolean arg0) {
// TODO Auto-generated method stub
//x5內(nèi)核初始化完成的回調(diào)翁脆,為true表示x5內(nèi)核加載成功,否則表示x5內(nèi)核加載失敗鼻种,會(huì)自動(dòng)切換到系統(tǒng)內(nèi)核反番。
Log.d("app", " onViewInitFinished is " + arg0);
}
@Override
public void onCoreInitFinished() {
// TODO Auto-generated method stub
}
};
//x5內(nèi)核初始化接口
QbSdk.initX5Environment(getApplicationContext(), cb);
使用文件解決能力
有兩種方式:
- 調(diào)用QbSdk.openFileReader方法打開文件。
QbSdk.openFileReader(Context context, String filePath, HashMap<String, String>
extraParams,ValueCallback<String> callback)
此方式優(yōu)先調(diào)起 QQ 瀏覽器打開文件叉钥。如果沒有安裝 QQ 瀏覽器罢缸,在 X5 內(nèi)核下調(diào)起簡(jiǎn)版 QB(miniqb) 打開文件。如果使用的系統(tǒng)內(nèi)核投队,則調(diào)起文件閱讀器彈框枫疆。
- 使用sdk提供的TbsReaderView來(lái)加載并顯示文件
TbsReaderView.openFile(Bundle bundle)
此方式不會(huì)調(diào)起其他頁(yè)面來(lái)加載。
兩種方式的區(qū)別
- 官方文檔中只提供了方式一的接入方式敷鸦,而方式二是我在網(wǎng)上發(fā)現(xiàn)的息楔。官方推薦的當(dāng)然會(huì)穩(wěn)妥一點(diǎn)寝贡。
- 方式一有QQ瀏覽器和x5內(nèi)核的支持,因此提供的能力更全面值依,包括支持更多的格式(使用QQ瀏覽器調(diào)起)圃泡,最近打開的文件(QQ瀏覽器和x5內(nèi)核均支持),文件管理能力(使用QQ瀏覽器調(diào)起)愿险。
- 當(dāng)手機(jī)沒有安裝QQ瀏覽器颇蜡,但能加載x5內(nèi)核時(shí),第一次打開可能還是會(huì)彈出文件閱讀器彈框辆亏,第二次打開才能正常使用miniqb加載文檔风秤。
- 方式二在手機(jī)沒裝QQ瀏覽器且沒有x5內(nèi)核的情況下,會(huì)彈出文件閱讀器彈框讓用戶選擇打開方式扮叨,當(dāng)用戶沒有安裝對(duì)應(yīng)app的情況下缤弦,則無(wú)法打開該文件。
注意
- 方式二在activity銷毀時(shí)記得調(diào)用TbsReaderView.onStop()方法甫匹,否則再次打開文件會(huì)顯示一直加載中甸鸟。
- 兩種方式都不支持在線瀏覽文件,要實(shí)現(xiàn)在線瀏覽功能只能自己講文件下載下來(lái)再用以上兩種方式打開兵迅。
方式1的效果
手機(jī)未安裝QQ瀏覽器且無(wú)x5內(nèi)核:
手機(jī)未安裝QQ瀏覽器但已加載x5內(nèi)核:
手機(jī)安裝了QQ瀏覽器:
已安裝QQ瀏覽器抢韭,點(diǎn)擊最近打開文件按鈕:
查看全部文件:
方式2的效果
具體實(shí)現(xiàn)看代碼吧
參考:
Android應(yīng)用內(nèi)展示word、excel恍箭、pdf刻恭、ppt等文件
TBS騰訊瀏覽服務(wù)