6.3 Poco如何支持WebView检视

Poco对WebView的检视的支持程度,主要取决于WebView本身的兼容性情况,目前兼容性最好的WebView方案是 Google-WebView 。有一些Android手机上使用了其他类型的WebView支持,导致Poco无法检视WebView内容,也就造成了目前微信小程序无法使用Poco进行测试的问题。

以下将会讲解如何设置Android设备上的WebView支持,以确保我们可以使用Poco检视普通App中的WebView。

WebView

Android自带WebView

在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。 如果把一个浏览器比作一辆汽车,我们可以认为webkit内核是他们的发动机,WebView是这辆车的引擎加传动装置。 安卓系统中默认自带的webview包名为 com.android.webview

浏览器和WebView的关系

许多安装包比较大的浏览器,它们内置了自己的内核或者将别家的内核加以改造,和安卓内WebView并没有什么关系。 如QQ浏览器、UC浏览器、Chrome浏览器等。

如何设置Android设备上的WebView

安卓系统自带WebView版本老旧,一般跟随系统进行升级。 不过现在还有另一种方法,就是安装Google-WebView,调用其进行渲染让我们的浏览体验变得更好。 目前很多手机内已经内置并且采用了Google-WebView,只需要升级即可。 升级方法:下载最新版Google-WebView包,安装时部分系统会提示升级,请升级。

  • 点击 开发者选项 - WebView实现 :

    ../_images/webview_settings.png
  • 优先选择 Google WebView (兼容性最好),其次选择 AOSP WebView (安卓自带):

    ../_images/webview_settings2.png

微信/QQ上的WebView选择

问题

微信和QQ内置的浏览器内核不是Android原生的WebView,而是他们自家的 X5 WebView 内核。其实就是腾讯浏览服务(Tencent Browsing Service, TBS),它目前可能存在各种问题:

比如没有严格遵照fonts.xml实现多字重挂载,替换多字重后会自动变成伪粗体。 网页加载速率低,许多微信页面第二次才能正常打开。

如果想解决以上问题,可以切换到系统WebView内核。

打开调试页面

腾讯保留了一个TBS调试页面 debugtbs.qq.com ,本来是方便开发者安装TBS内核的,但是我们用的是它的删除功能。 首先我们需要在内置浏览器中点开一个调试页面,方法是在微信聊天窗口中,向任意好友发送这个网址 http://debugtbs.qq.com/ ,然后点开它:

../_images/debug_url.png

清除TBS内核

../_images/tbs.png

将最下方的的 强制使用系统内核 打开,并且 清除TBS内核 ,做完之后重启微信/QQ。 再进入这个页面,点击 查看版本信息 。如果版本信息为 0(null) 则设置成功。

注意事项

  • 如果将系统内的WebView切换后出现卡顿的情况,可能是系统兼容问题,可以切换回去即可。
  • 如果在切换后发现仍然无法检视到WebView内容,可能是某些系统暂时不支持Accessibility,因此导致Poco暂时无法兼容。