wake-up-neo.net

Welche Version von Mobile Safari ist in jeder iOS-Version enthalten?

Ich versuche herauszufinden, welche Javascript-APIs ich verwenden kann, um Unterstützung für Mobile Safari zu iOS2 zu erreichen. Ich habe nirgendwo eine Liste gefunden, die zeigt, welche Version von Mobile Safari mit jeder neuen Version von iOS ausgeliefert wird. Ich suche nach einer umfassenden Liste, die bis auf iOS2 zurückreicht.

Vielen Dank!

[Bearbeiten: Ja, ich kenne und liebe die Erkennung von Funktionen. Ich habe jedoch eine Reihe gezielter Browser, die ich unterstützen muss, und ich muss nur überprüfen, ob die von mir bereitgestellten Fallbacks meine Zielgruppe abdecken, und dass ich keine zusätzlichen Fallbacks bereitstellen muss, die mühsame Hacks darstellen.]]

52
Mike Sherov

Da dies bereits der Top-Hit bei Google ist, sollten wir hier eine Liste erstellen. Ich werde diese Antwort zu einem Community-Wiki machen. Ich ziehe diese übrigens aus der Benutzer-Agent-Zeichenfolge des Geräts. Die Browserversion ist von der iOS-Version abhängig, NICHT vom Gerät abhängig. Wenn ein Telefon jedoch keine höheren iOS-Versionen unterstützt, wird es aufgelistet:

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

Die Liste dieses Kerls ist wirklich nützlich: http://www.somegeekintn.com/blog/stuff/iosvers/

Wenn Sie zusätzliche Informationen benötigen, können Sie die Safari-Versionen auf useragentstring.com dekodieren, z.

http://www.useragentstring.com/Safari5.0.2_id_18120.php erklärt, dass die Safari-Version 6533.18.5 als "Safari 5.0.2" bekannt ist

14
Izabela Ewe

Ich konnte auch keine umfassende Liste finden. Das Beste, was ich bisher gefunden habe, ist eine Safari-Dokumentation von Apple:

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

Viel Glück!

[Aktualisieren]

Obwohl dies die Frage immer noch nicht beantwortet, wird zumindest darauf hingewiesen, dass WebKit im Februar 2009 Unterstützung für getBoundingClientRect() hinzugefügt hat. 

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

3
Joel

Anstatt die Geräte- oder Betriebssystemerkennung durchzuführen, sollten Sie die Funktionserkennung durchführen. Sie bietet eine viel umfangreichere Erfahrung und Sie können benutzerdefinierten Code bereitstellen, um Funktionen hinzuzufügen, die von der jeweiligen Version nicht unterstützt werden. Auf diese Weise bieten Sie Support jenseits der spezifischen Geräte, auf die Sie abzielen (und es ist in der Regel einfacher, da der Code nicht für einen bestimmten Benutzeragenten verzweigt wird), sondern Sie unterstützen ältere Implementierungen von js, indem Sie ihn unterstützen vorausschauende Unterstützung unter bestimmten Bedingungen).

Die neueste Version von Desktop & Mobile Safari bietet beispielsweise keine .bind()-Funktionalität, um einen Kontext an eine Schließung zu binden. Dies kann mithilfe von Function.prototype.bind erkannt und gehandhabt werden. Falls nicht vorhanden, wird eine Implementierung bereitgestellt, die älteren Browsern die Funktionalität zur Verfügung stellt. Die Verwendung einer Bibliothek wie http://www.modernizr.com/ wird dabei sehr hilfreich sein.

Allerdings gibt es bestimmte DOM-Ereignisse, die an bestimmte Versionen von iOS gebunden sind: http://developer.Apple.com/library/safari/navigation/#section=Libraries&topic=Safari%20DOM%20Additions% 20für% 20iOS

2
tkone

Wenn es bestimmte APIs gibt, die Sie gerade betrachten, ist caniuse.com eine großartige Ressource, um herauszufinden, wie weit die API unterstützt wird. 

Viel Glück damit!

0
frosty