ChatGPT解决这个技术问题 Extra ChatGPT

每个版本的 iOS 都附带什么版本的移动 Safari?

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

谢谢!

[编辑:是的,我知道并且喜欢特征检测。但是,我有一组需要支持的目标浏览器,我只需要验证我提供的后备方案是否涵盖了我的目标受众,并且我不需要提供额外的后备方案,因为这些后备方案很麻烦)。]


7
7 revs, 6 users 48%

由于这已经是 Google 上的热门话题,我们应该从这里开始列出。我会把这个答案变成一个社区维基。顺便说一句,我是从设备的用户代理字符串中提取这些的。浏览器版本取决于 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
[...]    - [...]
15.2     - Mobile Safari 15.2

IOS 上的 Safari 会收到更新吗?如果是这样,是否可以同时列出设备随附的库存版本以及每个设备/IOS 的最终更新或最新支持的 Safari 版本?
据我所知,Safari 更新仅作为 iOS 更新提供。
K
Kevin Borders

这个人的清单真的很有用:http://www.somegeekintn.com/blog/stuff/iosvers/

如果您需要更多信息,可以在 useragentstring.com 上解码 Safari 版本,例如:

http://www.useragentstring.com/Safari5.0.2_id_18120.php 解释说 Safari 版本 6533.18.5 被称为“Safari 5.0.2”


第二个链接死了。
您可以转至主页:useragentstring.com我希望这会持续更长时间。
E
Elis Byberi

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

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

祝你好运!

[更新]

虽然这仍然不能回答问题,但它至少说明了 WebKit 何时在 2009 年 2 月添加了对 getBoundingClientRect() 的支持。

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


这实际上显示了 iOS 版本的用户代理字符串,我可以将其绑定到 webkit 版本。这已经足够好了!
第一个链接已失效。
t
tkone

与其进行设备或操作系统检测,不如进行功能检测——它将提供更丰富的体验,并且您可以提供自定义代码来添加特定版本不支持的功能。这样,您将提供超出您所针对的特定设备的支持方式(并且通常最终会更容易,因为您不是为特定的用户代理分支代码,而是通过提供回填对旧 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 bugs.jquery.com/ticket/10996 中删除一个功能,如果我可以验证 getBoundingClientRect 存在于 jQuery 支持的所有浏览器中,我可以删除大量代码。例如,您不会检测 document.createElement(),对吗?我试图找出 getBoundingClientRect 是否足够成熟,不再需要对其进行支持测试,以及其他 4 个可能不必要的后备测试的支持测试。谢谢!
对于更多的上下文,这是我提交的拉动请求,它证明了这个问题。 github.com/jquery/jquery/pull/642
啊,我明白了。我不认为您正在寻找的列表以有意义的方式存在。这可能是您必须下载旧 SDK 并在模拟器中运行它的事情之一。或者,由于移动版本应该与桌面版本相同(即 10.7 的 safari 5.1 应该与 iOS 5.1 safari 相同),因此您可以进行一些映射。并不意味着我的评论很刻薄,顺便说一句:)
这可能会有所帮助:en.wikipedia.org/wiki/JavaScript,但很难找到关于此的可靠信息。圣诞节快乐!
否决: 本身很好的建议,但与问题完全无关。需要支持特定的浏览器可能是一项要求,或者可能需要记录在案。那是另一个话题。
f
frosty

如果您正在查看特定的 API,caniuse.com 是一个很好的资源,可以帮助您了解 API 的支持程度。

祝你好运!