Chrome for iOS和Chrome for Android的区别

22

正如标题所说:Chrome for Android和Chrome for iOS有什么区别。

我进行了一些研究,但没有找到关于这个主题的最新信息。进行这项研究的原因是我正在调查某些Web API的移动浏览器兼容性。为此,我使用caniuse.com,它只显示Chrome for android而不是iOS。

我知道Chrome for iOS不再由UIWebView执行(iOS>=8),现在使用WKWebView

那么Chrome for Android和Chrome for iOS是否相同,或者这些移动浏览器之间仍然存在差异?

2个回答

26
╔═══════════════════════╦══════════════════╦═══════════════════════╗
║        Chrome         ║ Rendering Engine ║   JavaScript Engine   ║
╠═══════════════════════╬══════════════════╬═══════════════════════╣
║ iOS                   ║ iOS WebKit       ║ Nitro(JavaScriptCore) ║
║ Android/Windows/Linux ║ Blink            ║ V8                    ║
╚═══════════════════════╩══════════════════╩═══════════════════════╝

除了@Innominatum的回答外,需要注意的是Chrome适用于Android/Windows/Linux使用V8 JavaScript引擎,而Chrome适用于iOS必须使用Nitro引擎(这是驱动Safari的同一引擎)。
根据苹果公司发布的浏览器要求,Chrome的iOS版本使用iOS WebKit——这是苹果自己的移动渲染引擎和组件,为他们的Safari浏览器开发的——因此受到限制,不能使用Google自己的V8 JavaScript引擎。
因此,Chrome甚至Firefox在iOS上的行为与Safari基本相同。这就是为什么https://caniuse.com只显示一个支持表(iOS Safari)的原因。
参考资料:

https://en.wikipedia.org/wiki/Google_Chrome

https://softwareengineering.stackexchange.com/questions/198375/why-is-it-impossible-for-google-to-port-v8-along-with-chromes-codebase-in-c-obj

https://github.com/Fyrd/caniuse/issues/1551

https://github.com/Fyrd/caniuse/issues/3869


2
总之,苹果限制了他们的用户只能使用他们设计的浏览体验。 - Psddp

10
在进行了更多的研究并向一些开发人员提出了一些问题后,我得到了答案。Chrome for Android浏览器使用Blink引擎。Chrome for iOS浏览器使用WebKit引擎。这两个引擎都是KHTML排版引擎的分支。
由于苹果公司实行了严格的规定。所有可安装在iOS上的浏览器都使用WebKit引擎而不是它们原来的排版引擎。

这是否意味着Chrome for iOS不支持与Chrome for Android相同的功能?例如,在Chrome for Android中,我可以保存凭据、检查电池、使手机振动或创建在状态栏中显示的通知。在Chrome for iOS上是否所有这些都可行,还是Chrome for iOS具有与Safari for iOS相同的功能支持? - maxeh
3
是的,你的理解是正确的。iOS移动浏览器关闭了使用其他引擎的功能,因此它们使用Safari浏览器中存在的引擎。这导致iOS和Android浏览器可用的Web API有所不同。因此,后一种选择,Chrome for iOS具有与iOS Safari浏览器相同的可用Web API。 - M.B.
1
啊,好的,知道了,谢谢。当你没有iPhone时,调查这样的事情总是很棘手的。 - maxeh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接