文章用来记录笔者接入X5浏览器的过程,和排查一些问题,希望能帮到大家,有问题可以一起探讨。当前TBS SDK版本v3.1.0.1035
目录
- TBS SDK快速接入
- TBS X5 Core和System Core之间如何切换
1. TBS SDK快速接入
sdk接入应该不用多说了看官方文档http://x5.tencent.com/tbs/guide/sdkInit.html 就可以了非常详细。
sdk官方例子http://x5.tencent.com/tbs/sdk.html
接入完不要忘记添加混淆,否则打开app就会崩溃而且查找起来非常麻烦。
2. TBS X5 Core和System Core之间如何切换
这里才是今天讨论的关键,我们在看官方文档时http://x5.tencent.com/tbs/guide/sdkInit.html ,有一个步骤是这么写的。
第五步、加载 x5内核的操作方法
- 下载安装TBSDemo到手机 点击下载;
- 启动 TBSDemo,等待几秒钟后看到提示框“x5内核安装成功,是否重启”,此时点击“重启”;
- TBSDemo重启后,当看到左上角显示“x5 core:”,然后可进行下一步,否则请联系我们;
- 卸载重装您的App,保持手机网络畅通,进入您的App的网页场景,等待3秒后在手机设置里杀掉您的App,然后再次启动您的App 进入网页场景,此时您的App就可以使用x5内核了;备注说明:
由于微信手Q下载X5内核会碰到流控等限制,操作门槛较高,所以通过前三步可以快速实现将TBSDemo中携带的X5内核部署到手机上。
看过这段文字内心肯定是崩溃的,我要集成这个X5内核还需要用户下载一个TBSDemo这怎么行,而且操作还如此的复杂才可以下载X5内核到本地,大家想想腾讯怎么可能搞一个这么傻X的SDK不被广大开发者骂死吗,其实SDK是通过共享使用用户手机上微信、手机QQ、空间、QQ浏览器等软件已经下载好的X5内核,其中微信、手机QQ、空间必须打开App等一下(下载X5内核需要时间)或者打开过网页才可以否则本地是没有下载X5内核的,相信现在的手机上98%以上都会有这几个App吧,但是对于追求极致的程序员来说那2%的用户会怎么办呢,就会引出下面两个问题。
1.app在下载X5内核过程中使用WebView app会崩溃吗,还是用系统的webview。
2.当下载下来的X5内核不小心被删除了怎么办。
下面就来图文讲解一下X5内核是如何下载到客户端本地,如何加载到我们的App中的。
首先,手机上没有安装腾讯的任何软件,微信,手Q等在SD卡的根目录下不会出现tencent这个目录如下图:
当下载了微信登录进入微信在看这个目录里面的结构,如下图,出现了tbs这个文件夹
进入tbs这个文件夹发现有com.tencent.mm这个文件夹,这个文件夹下有x5.tbs.org,这就是X5内核了。
这个文件是因为我登录了微信自动下载下来的,其他接入了X5内核的app都会找到这个内核加载到自己的app中防止每个接入X5内核的app都去下载一份,如果没有找到本地X5内核的app就会在tencent/tbs/backup/ 目录下创建自己的包名,在包名下面下载内核,下载的内核每个接入SDK的app都会使用。在正在下载内核的过程中如果app想使用WebView会直接使用系统的WebView,当下载完成App下次启动就会使用X5内核了,所以说本地没有X5内核app也不会崩溃会使用系统的WebView。
还有如果不小心本地的X5内核被删除了怎么办,我们首先删除内核在打开微信,或者我们的Demo,发现还可以使用X5内核,这就可以想到肯定是第一次加载X5内核的时候将他拷贝到app的系统目录下了,咱们去系统目录(/data/data/com.example.test_webview_demo/)下看看猜测是否正确,如下图
果然在系统目录下有app_tbs目录,由此可以推断在app加载X5内核的同事将他复制到了系统目录,这样一来无论sd卡目录下是否保留着下载的内核对于加载过的app来说是没有影响的app会去的系统目录找到内核进行使用,影响的只是没有加载过的app它们会重新下载内核。
结论
1.可以放心的使用X5内核SDK会非常智能的选择使用X5内核还是使用系统的内核。
2.只要加载过X5内核的app,内核会加载到app的系统目录和sd卡中的内核没关系。
3.接入完SDK不要忘记混淆。