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

公司的项目有一个预览文档功能,之前接触过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中核心部分如下:



        
    

在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实现在线预览文档功能)