接入
騰訊瀏覽服務(wù)TBS支持本地打開多種文件格式,如doc、ppt、pdf等。
官網(wǎng):https://x5.tencent.com/tbs/guide/sdkInit.html。
要吐槽的是官方的接入文檔不是很清晰,論壇問題也基本沒人回答......
好在網(wǎng)絡(luò)上有不少人總結(jié)了接入流程和遇到的坑,可以參考。
小坑
接入之后還是遇到一個小坑,就是加載文檔后右下角會有菜單,有“查找”、“最近文件”等。然而,點擊菜單是沒有任何效果的……需要觸摸一下頁面才會消失,而且沒有提供隱藏的API。

不明來歷的菜單.png
填坑
很明顯,首先想到的解決方法有兩個:
- 模擬觸摸
- 找到對應(yīng)的View,然后隱藏
這里采用了第二個方法。
打印一下就可以看到TbsReaderView的整個結(jié)構(gòu),要做的就是把設(shè)置一下菜單view的可見性。

View結(jié)構(gòu).png
另外有個要注意的地方,這個菜單view是在加載文檔后才會加進頁面的。所以需要在加載文檔后再隱藏該菜單view。
具體就是在加載文檔后,監(jiān)聽到菜單View加進來,馬上隱藏。關(guān)鍵代碼如下:
tbsReaderView.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {
@Override
public void onChildViewAdded(View parent, View childView) {
if (childView instanceof FrameLayout) {
final FrameLayout frameLayout = (FrameLayout) childView;
frameLayout.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {
@Override
public void onChildViewAdded(View parent, View childView) {
if (childView.getClass().getSimpleName().equals("MenuView")) {
childView.setVisibility(View.GONE);
//移除監(jiān)聽
tbsReaderView.setOnHierarchyChangeListener(null);
frameLayout.setOnHierarchyChangeListener(null);
}
}
@Override
public void onChildViewRemoved(View view, View view1) {
}
});
}
}
@Override
public void onChildViewRemoved(View view, View view1) {
}
});