Подтвердить что ты не робот

Какая версия мобильного сафари поставляется с каждой версией iOS?

Я пытаюсь выяснить, какие Javascript API, которые я могу использовать для поддержки Mobile Safari, обратно в iOS2. Я нигде не нашел список, который показывает, какая версия Mobile Safari поставляется с каждой новой версией iOS. Я ищу полный список, который полностью возвращается к iOS2.

Спасибо!

[Изменить: Да, я знаю и люблю обнаружение функции. Тем не менее, у меня есть набор целевых браузеров, которые мне нужно поддерживать, и мне просто нужно проверить, что резервные копии, которые я предоставил, охватывают мою целевую аудиторию и что мне не нужно предоставлять дополнительные резервные копии, которые являются громоздкими хаками).]

4b9b3361

Ответ 1

Так как это уже самый популярный сайт в 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

Ответ 3

Я тоже не смог найти исчерпывающий список. Самое лучшее, что я нашел до сих пор, это документация Safari от Apple:

http://developer.apple.com/library/IOs/#documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html

Удачи!

[Обновление]

Пока это еще не отвечает на вопрос, он, по крайней мере, говорит, когда WebKit добавил поддержку getBoundingClientRect() в феврале 2009 года.

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

Ответ 4

Вместо того, чтобы делать обнаружение устройства или os, вы должны выполнять обнаружение функции - это обеспечит гораздо более богатый опыт, и вы можете предоставить собственный код для добавления функциональных возможностей, которые не поддерживаются конкретной версией. Таким образом, вы окажете поддержку за пределами определенных устройств, на которые настроены таргетинг (и, как правило, это становится проще, а вместо того, чтобы разветвлять ваш код для конкретного пользовательского агента, вы поддерживаете поддержку старых 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

Ответ 5

Если есть конкретный API, на который вы смотрите, caniuse.com - отличный ресурс для определения того, как далеко назад поддерживается API.

Удачи вам!