接入
腾讯浏览服务TBS支持本地打开多种文件格式,如doc、ppt、pdf等。
官网:https://x5.tencent.com/tbs/guide/sdkInit.html。
要吐槽的是官方的接入文档不是很清晰,论坛问题也基本没人回答......
好在网络上有不少人总结了接入流程和遇到的坑,可以参考。
小坑
接入之后还是遇到一个小坑,就是加载文档后右下角会有菜单,有“查找”、“最近文件”等。然而,点击菜单是没有任何效果的……需要触摸一下页面才会消失,而且没有提供隐藏的API。

填坑
很明显,首先想到的解决方法有两个:
- 模拟触摸
- 找到对应的View,然后隐藏
这里采用了第二个方法。
打印一下就可以看到TbsReaderView的整个结构,要做的就是把设置一下菜单view的可见性。

另外有个要注意的地方,这个菜单view是在加载文档后才会加进页面的。所以需要在加载文档后再隐藏该菜单view。
具体就是在加载文档后,监听到菜单View加进来,马上隐藏。关键代码如下:
if (tbsReaderView.getChildCount() > 0) {
final View frameLayout = tbsReaderView.getChildAt(0);
if (frameLayout instanceof ViewGroup) {
((ViewGroup) frameLayout).setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {
@Override
public void onChildViewAdded(View parent, View childView) {
if (childView.getClass()
.getCanonicalName()
.equals("com.tencent.mtt.external.reader.internal.menuConfig.MenuView")) {
childView.setVisibility(View.GONE);
}
}
@Override
public void onChildViewRemoved(View view, View view1) {
}
});
}
}
网友评论