not support by ** 关于腾讯TBS浏览服务的那些坑

注:目前新版本SDK已经下架文件预览相关api.此贴不适用于新版本API.具体情况各位大佬可看官网说明

这几天接手了公司之前外包出去的项目,经过几天的不懈努力,头发变得越来稀疏了哈。先来看下这个大坑-----腾讯TBS浏览服务

话说腾讯tbs这个服务本意是好的,毕竟免费呢。虽说免费,但是文档描述的也太。。。。。大家懂的。

拿到这个项目后第一个bug就是各式各样的文件都不能查看,不是内核加载失败,就是初始化后下载监听没反应,一直返回code110。翻看网上各路大神的帖子,有说需要调用reset清除缓存的,也有说要设置setDownloadWithoutWifi为true,也有人说要在init之前设置tbsListener监听才有效。奈何我试千百遍,结果依旧不改变-----啥用都没有。然后就开始了自己天坑之旅

---------------------------------------------------------------------------------------------------------------------------------

先说初始化的步骤,官网只说了尽早的调用初始化接口,但却没有表明应该什么时机调用,这就有点儿坑了。

 初始化最关键的,但总觉得没这么简单。公司项目中的写法和网上的写法基本一致,都是把监听和初始化都写在同一个方法里,并且也没有一些初始化的逻辑判断,总感觉哪儿有点儿问题。

下图为公司项目中的tbs初始化写法:

 这种写法就会造成文章开头说的各式各样的问题,仔细揣摩一下就会发现问题。按照这种写法,如果内核还没下载完就init,是不是有点儿不合逻辑呢。所以在自己一步一步的揣摩和查看api之后,梳理出来了大致流程

---------------------------------------------------------------------------------------------------------------------------------

1、首先判断是否有x5内核并加载成功
2、如果加载成功则走openfile逻辑
3、加载失败的话则调用reset方法清除缓存(reset方法文档并没有详细说明,但看源码貌似式清除本地内核文件用的)。

 4、reset之后调用startDownload方法,这里切记,一定要调用两个入参的构造方法,并将第二个入参boolean为true。否则调用之后并不会开始下载(官方文档中说明在卸载app或者超过24小时会重新下发x5内核,但我实际测试不太稳定,绝大多数卸载重新安装之后并不会重新下发内核。原因就不得而知了)
5、在TbsListener的监听中通过onInstallFinish方法来监听是否下载成功并安装。这时候注意了,一定要在这个方法中进行init操作(也就是QbSdk.initX5Environment)。在init的回调方法中onViewInitFinished监听内核是否安装成功。亲测基本上都可以安装成功。在这里给大家提供一个建议,如果操作下来还偶尔出现不成功的现象,建议在这种情况下调用外部app打开文件。毕竟总不能让用户啥都看不了(前提是公司对文件的安全性不太注重哈。。。毕竟像wps之类的app可能会保留文件的浏览记录)
6、大功告成---下面就贴出详细代码,欢迎大家提意见


 

 

 好啦,基本上这就是大概的tbs流程了。最后总结一下,免费虽好,但也要做好填坑的心态。欢迎各位提建议,大佬们下次见

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百度了个锤子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值