借用这位兄弟的链接:
大意如下:
最近开发的小程序项目的时候发现,在安卓手机里,不同手机上webview组件内的浏览器内核可能不一样。大部分用的应该是腾讯自己的X5内核。通过UA可以看到TBS关键字,还有一些没有用X5内核,有Crosswalk关键字。
简单查了一下,
Crosswalk是一款开源的Web引擎,其基于 Chromium/Blink 的应用运行环境,对于混合开发的轻量级应用尤为受欢迎。
基于X5内核的UA实例如下:
Build/HONORPLK-TL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/6.2 TBS/044207 Mobile Safari/537.36 MicroMessenger/6.7.2.1340(0x26070239) NetType/WIFI Language/zh_TW MicroMessenger/6.7.2.1340(0x26070239) NetType/WIFI Language/zh_TW miniProgram
基于Crosswalk引擎的的UA实例如下:
Mozilla/5.0 (Linux; Android 6.0; ZTE BV0710 Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.143Crosswalk/24.53.595.0XWEB/256MMWEBSDK/21MobileSafari/537.36 MicroMessenger/6.6.7.1321(0x26060739) NetType/WIFI Language/zh_CN MicroMessenger/6.6.7.1321(0x26060739) NetType/WIFI Language/zh_CN miniProgram
内核不同主要会影响一些原生的组件的展示效果。例如,video的样式控制等。
据我进一步的验证发现,android手机通过搜索小程序、转发出来的小程序点击进去的首次调用了x5内核,当杀掉小程序进程,从微信首页下拉进入小程序的时候,调用的是基于Crosswalk引擎的内核。真的是奇葩得我都不知道该怎么处理。求问原理?