每个版本的iOS随附哪个版本的移动浏览器?


72

我试图弄清楚我可以使用哪些Javascript API来实现对回到iOS2的Mobile Safari的支持。我在任何地方都找不到一个列表,该列表显示每个新版本的iOS附带哪些版本的Mobile Safari。我正在寻找可以追溯到iOS2的完整列表。

谢谢!

[编辑:是的,我知道并且喜欢功能检测。但是,我有一组需要支持的目标浏览器,我只需要验证我提供的后备功能可以覆盖我的目标受众,并且不需要提供其他麻烦的后备功能。]

Answers:


104

由于这已经是Google的热门话题,因此我们应该在此处开始列出。我将这个答案作为社区Wiki。顺便说一句,我正在从设备的用户代理字符串中提取这些信息。浏览器版本取决于iOS版本,而不取决于设备。但是,当手机不支持更高的iOS版本时,则会列出:

3.2.2    - Mobile Safari 4.0.4
4.3.3    - Mobile Safari 5.02   - iPhone 3g
5.0      - Mobile Safari 5.1
5.1      - Mobile Safari 5.1
6.0      - Mobile Safari 6.0    - iPhone 3gs
7.1      - Mobile Safari 7.1    - iPhone 4
8.3      - Mobile Safari 8.0
9.2.1    - Mobile Safari 9.0    - iPhone 4s
10.3.4   - Mobile Safari 10.0   - iPhone 5
11.2.5   - Mobile Safari 11.0
12.1.4   - Mobile Safari 12.0
12.4.4   - Mobile Safari 12.1   - iPhone 5S, 6
13.0     - Mobile Safari 13.0

9
IOS上的Safari是否接收更新?如果是这样,既列出设备随附的库存版本,又列出每个设备/ IOS的​​Safari的最终更新或最近支持的版本,这是一个主意吗?
Jeroen 2014年

3
据我所知,Safari更新仅作为iOS更新提供。
本杰明·奥克斯


3

我也找不到完整的清单。到目前为止,我发现最好的是来自Apple的一些Safari文档:

https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html

祝好运!

[更新]

尽管这仍然不能回答问题,但至少可以说明WebKitgetBoundingClientRect()在2009年2月添加了对它的支持。

http://trac.webkit.org/changeset/40837


这实际上显示了iOS版本的用户代理字符串,我可以将其绑定到Webkit版本。这样就好了!
Mike Sherov 2012年

1
第一个链接已死。
LaRiFaRi

2

您应该进行功能检测-而不是进行设备或操作系统检测-它会提供更丰富的体验,并且您可以提供自定义代码以添加特定版本不支持的功能。这样,您将提供超出目标设备的支持方式(并且通常最终会更容易,因为您无需为特定的用户代理分支代码,而是通过提供对旧js实现的支持来回填支持有条件的前瞻性支持)。

例如,最新版本的台式机和移动Safari不提供.bind()将上下文绑定到闭包的功能。可以使用进行检测和处理Function.prototype.bind(如果不存在),并提供可以为旧版浏览器提供功能的实现。使用http://www.modernizr.com/之类的库将大大有助于这一工作。

话虽这么说,但某些特定的DOM事件与某些特定版本的iOS相关:http : //developer.apple.com/library/safari/navigation/#section=Libraries&topic=Safari%20DOM%20Additions%20for%20iOS


是!功能检测很重要,并且是测试功能的正确方法。但是,我正在尝试从jQuery的1.8版bug中删除一个功能bugs.jquery.com/ticket/10996,如果可以验证jQuery支持的所有浏览器中都存在getBoundingClientRect,则可以删除大量代码。例如,您将不具有检测document.createElement()功能,对吗?我试图找出getBoundingClientRect是否足够成熟,不再需要对其进行支持测试以及其他4个可能不需要回退的支持测试。谢谢!
Mike Sherov

对于更多的上下文,这是我提交的请求请求,可以证明这个问题。github.com/jquery/jquery/pull/642
Mike Sherov

啊,我明白了。我不认为您要查找的列表以有意义的方式存在。这可能是您必须下载旧的SDK并在模拟器中运行的事情之一。或者,由于移动版本应该与台式机版本相同(即10.7的safari 5.1应该与iOS 5.1的safari相同),您可以进行一些映射。并不是说我的评论很刻薄,顺便说一句:)
tkone 2011年

这可能会有所帮助:en.wikipedia.org/wiki/JavaScript,但是要找到可靠的信息非常困难。圣诞节快乐!
tkone 2011年

1
意见不足:好的建议本身,但与问题完全无关。需要支持特定的浏览器可能是必需的,或者可能需要记录在案。那是另一个话题。
Georgii Ivankin

-1

如果您正在查看特定的API,caniuse.com是一个很好的资源,可用于查找API支持的范围。

祝你好运!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.