web-dev-qa-db-fra.com

Quelle version de Safari mobile est fournie avec chaque version d'iOS?

J'essaie de déterminer les API Javascript que je peux utiliser pour prendre en charge Mobile Safari sur iOS2. Je n'ai trouvé nulle part une liste indiquant la version de Mobile Safari fournie avec chaque nouvelle version d'iOS. Je recherche une liste complète allant jusqu'à iOS2.

Merci!

[Edit: Oui, je connais et aime la détection de fonctionnalités. Cependant, je dois prendre en charge un ensemble de navigateurs ciblés, et je dois juste vérifier que les solutions de rechange que j'ai fournies couvrent mon public cible et que je n'ai pas besoin de fournir des solutions de rechange supplémentaires qui sont des hacks lourds).]]

52
Mike Sherov

Comme il s'agit déjà du premier succès sur Google, nous devrions en commencer une liste ici. Je ferai de cette réponse un wiki de communauté. En passant, je les extrait de la chaîne d'agent utilisateur du périphérique. La version du navigateur dépend de la version iOS, PAS du périphérique. Mais lorsqu'un téléphone ne prend pas en charge les versions iOS supérieures, il est répertorié:

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
11.2.5   - Mobile Safari 11.0
81
Alex W

La liste de ce type est vraiment utile: http://www.somegeekintn.com/blog/stuff/iosvers/

Si vous avez besoin des informations supplémentaires, vous pouvez décoder les versions de Safari sur useragentstring.com, par exemple:

http://www.useragentstring.com/Safari5.0.2_id_18120.php explique que la version 6533.18.5 de Safari est appelée "Safari 5.0.2"

14
Izabela Ewe

Je ne pouvais pas trouver une liste complète non plus. La meilleure chose que j'ai trouvée jusqu'à présent est une documentation Safari d'Apple:

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

Bonne chance!

[Mettre à jour]

Bien que cela ne réponde toujours pas à la question, il indique au moins quand WebKit a ajouté la prise en charge de getBoundingClientRect() en février 2009. 

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

3
Joel

Plutôt que de faire de la détection de périphérique ou de système d'exploitation, vous devriez plutôt faire de la détection de fonctionnalités. Cela offrira une expérience beaucoup plus riche et vous pourrez fournir un code personnalisé pour ajouter des fonctionnalités que la version spécifique ne prend pas en charge. De cette manière, vous apporterez une assistance bien au-delà des périphériques spécifiques que vous ciblez (et cela s'avère généralement plus facile car, au lieu de créer une branche pour votre code pour un agent utilisateur spécifique, vous restaurez la prise en charge des anciennes implémentations de js en fournissant: soutien prospectif sur une base conditionnelle).

Par exemple, la dernière version de Safari pour ordinateur de bureau et mobile ne fournit pas la fonctionnalité .bind() pour lier un contexte à une fermeture. Ceci peut être détecté et géré à l'aide de Function.prototype.bind et s'il n'existe pas, en fournissant une implémentation qui fournit la fonctionnalité aux navigateurs plus anciens. L'utilisation d'une bibliothèque telle que http://www.modernizr.com/ vous aidera grandement dans cette entreprise.

Cela étant dit, certains événements DOM liés à certaines versions d'iOS sont les suivants: http://developer.Apple.com/library/safari/navigation/#section=Libraries&topic=Safari%20DOM%20Additions% 20pour% 20iOS

2
tkone

Si vous examinez des API spécifiques, caniuse.com est une excellente ressource pour savoir jusqu'où le support de l'API est disponible. 

Bonne chance!

0
frosty