美文网首页
集成腾讯X5实现在线预览文档功能

集成腾讯X5实现在线预览文档功能

作者: ziabo_yu | 来源:发表于2020-03-27 13:45 被阅读0次

    公司的项目有一个预览文档功能,之前接触过google的,发现比较难用,最后权衡再三,还是决定使用腾讯x5来实现,虽然有一些小bug但整体功能性实现的还是挺好的,就是网上的教程杂七杂八的很多都没有说到重点,就决定自己写一篇博客,省的新人踩坑,好的话不多说,步入正题。

    • 接入腾讯x5
      https://blog.csdn.net/xiangshiweiyu_hd/article/details/81814338
      此处有很多博客都已经做了详细的介绍,上度娘即可,本博客探讨的并不是这个问题,因此不做赘述,附个链接吧。远作者也并没有声明转载问题,因此就直接贴了,若牵扯版权问题,直接私聊我,谢谢。
    • 文件预览
      由于x5只能预览下载好的文件,所以文件要预览的时候需要先进行文件下载,然后把文件path传进来就好了,具体WebView中代码如下;
    private void openFile(String path) {
            //通过bundle把文件传给x5,打开的事情交由x5处理
            Bundle bundle = new Bundle();
            //传递文件路径
            bundle.putString("filePath", path);
            //临时的路径
            bundle.putString("tempPath", Constants.DOCUMENT_DOWNLOAD_PATH);
            TbsReaderView  readerView = new TbsReaderView(this, (integer, o, o1) -> {
             });
            //加载文件前的初始化工作,加载支持不同格式的插件
            boolean b = readerView.preOpen(getFileType(path), false);
            if (b) {
                readerView.openFile(bundle);
            }
            // 往容器里添加TbsReaderView控件
            frameLayout.addView(readerView);
        }
    

    xml中核心部分如下:

    <FrameLayout
            android:id="@+id/frameLayout"
            android:background="@color/white_color"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
            <com.tencent.smtt.sdk.WebView
                android:id="@+id/webView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scrollbars="none" />
        </FrameLayout>
    

    在onDestory中要及时销毁readerView

    @Override
        protected void onDestroy() {
            if (webView != null) {
                ViewGroup parent = (ViewGroup) webView.getParent();
                if (parent != null) {
                    parent.removeView(webView);
                }
                webView.clearHistory();
                webView.clearCache(true);
                webView.destroy();
                webView = null;
            }
            if (readerView != null) {
                readerView.onStop();
            }
            super.onDestroy();
        }
    

    总结

    上述便是使用腾讯x5预览文件的全部代码,需要注意的是文件必须已经下载到本地,且本地使用wps等打开没有什么问题,文件预览部分情况下可能出问题,但是几率不是很大。好了,谢谢观看!若本文对您有用,请给个赞!

    相关文章

      网友评论

          本文标题:集成腾讯X5实现在线预览文档功能

          本文链接:https://www.haomeiwen.com/subject/egfbmttx.html