集成腾讯TBS问题记录

在这里插入图片描述

周末好!

前言:集成腾讯TBS遇到的问题记录,网上教程比较老了,大家不能照抄。比如,为了支持64位手机,添加.so的步骤,但在新版本,这个问题都已经被修复,我们只需要去官网下载最新的jar包或者通过依赖的方式就可以了

2021/12/22更新
由于tbs需要外网下载内核,不适合我的内网场景,我就选择了开源的pdfjs,方案改为显示pdf,这个可以通过一些规避的方式(定制的终端),不使用网络成功显示pdf。而且也简单太多了

下面的问题都是通过TbsReaderView显示文件遇到的问题。都解决了,但是QbSdk.openFileReader的方法我也试了一直处于加载文档,我就没研究了、

x5内核加载时 onViewInitFinished回调一直返回false

可能是第一次加载时正在下载内核时应用退出了,下次不会继续下载的,需要清空下缓存。

    //重置化sdk,这样就清除缓存继续下载了
    //       QbSdk.reset(this);
QbSdk.initX5Environment(this, new QbSdk.PreInitCallback() {

/**
 * 内核初始化完毕
 */
@Override
public void onCoreInitFinished() {
    Log.d("duo_shine", "内核初始化完毕: ");
}

/**
 * WebView验证完毕
 * 是否使用X5内核,true 表示可以成功使用X5内核,false 表示使用了系统内核
 * @param b
 */
@Override
public void onViewInitFinished(boolean b) {
    Log.d("duo_shine", "WebView验证完毕: " + b);
}
});
    
//监听内核下载
QbSdk.setTbsListener(new TbsListener() {
    @Override
    public void onDownloadFinish(int i) {
        Log.d("duo_shine", "tbs内核下载完成回调: " + i);
        //tbs内核下载完成回调
        //但是只有i等于100才算完成,否则失败
        //此时大概率可能由于网络问题
        //如果失败可增加网络监听器
    }

    @Override
    public void onInstallFinish(int i) {
        Log.d("duo_shine", "内核安装完成回调: " + i);
        //内核安装完成回调,通常到这里也算安装完成,但是在
      
    }

    @Override
    public void onDownloadProgress(int i) {
        //下载进度监听
        Log.d("duo_shine", "下载进度监听: " + i);
    }
});
插件加载失败,请重试 (9.0)

9.0系统增加了https的要求,如果是9.0及以上需要配置networkSecurityConfig

not supported by:doc

内核未安装完成,确认下内核是否可用,通过下面的API

    boolean b = QbSdk.canLoadVideo(this);
    Log.d(TAG,"是否可使用x5内核: " + b);

如果返回true,再确认下没启动使用系统内核。如果返回false。检查initX5Environment函数是否正常初始化。如果onViewInitFinished函数返回false,那么可通过下面代码试试:注意监听下下载进度,没下载成功你是不能用的。

    public void onViewInitFinished(boolean b) {
        Log.d("duo_shine", "WebView验证完毕: " + b);
        if (!b && !QbSdk.getIsSysWebViewForcedByOuter()) { //使用系统内核可能是x5内核在之前未安装成功,重新安装
            //判断是否是x5内核未下载成功,存在缓存 重置化sdk,这样就清除缓存继续下载了
            QbSdk.reset(MyApplication.this);
            	//开始下载x5内核
            TbsDownloader.startDownload(MyApplication.this);
        }
    }
提示文件预览失败,请用其他应用打开(10.0)

请确认文件在SD卡存在,我忘了将文件放到SD卡。我狠狠给自己一个大嘴巴子。

一些也许有用的API
//        不为null则支持x5内核
        WebView webView = new WebView(this);
        Log.d(TAG, "不为null则支持x5内核: " + webView.getX5WebViewExtension());

        int tbsVersion = QbSdk.getTbsVersion(this);
        Log.d(TAG, "当前内核版本号: " + tbsVersion);



    /**
     * 是否可以加载x5内核
     * 未安装x5内核时返回false
     * 安装一半返回false 
     * 安装成功返回true
     */
    boolean b = QbSdk.canLoadX5(this);
    Log.d(TAG, "是否可以加载X5内核: " + b);

至此,7-10.0都可以打开文档了

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值