Wechat for Windows 中 WebView 的内核

在一个项目中遇到了页面在 Wechat for Windows 客户端中渲染不正常的情况,本来以为微信客户端使用的是系统自带 IE 内核,但这个事情在探究实验之后,发现没有那么简单。

测试环境是 Windows 7 + IE11,做了一个页面进行调试后,发现该 WebView 使用的 UA 如下:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0);

由于系统当前的默认浏览器为 IE 11,并且页面已经添加 X-UA-Compatible 这一属性并设置为 IE=edge,因此断定此时使用的是系统的 IE 内核(同样是 Trident/7.0 )但强制在 IE7 兼容模式下进行渲染(网站方无法指定 IE 明确支持的声明方式使用更优的内核引擎)。

而在退出程序时注意到了一个事情:

Wechat for Windows 请求修改文件。在我们点击“是”以后,再次打开 Wechat for Windows,发现 UA 已经变更:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat;

打开程序的安装目录,也观察到目录中的文件数目已经改变,可以断定 Wechat for Windows 经已通过自动下载的方式使用了一个自定义的 Chrome 内核渲染页面。

Show your support

Clapping shows how much you appreciated Leechael’s story.