besoin de distinguer entre iPhone3x em> et iphone4x em>. Y a-t-il un moyen de comprendre la version de JavaScript s'il vous plaît? P>
6 Réponses :
Vous pouvez utiliser Ce que vous pouvez faire est d'utiliser les requêtes de média pour vérifier la résolution d'écran réelle de Le dispositif, qui pourrait être la cause du problème à la main. p> Vous pouvez également faire probablement sans JavaScript, en utilisant des requêtes de support pour charger différentes feuilles de style pour les affichages de rétine: < / p> navigator.useragent code> pour vérifier la version du système d'exploitation, mais ce n'est pas vraiment le problème ici.
Point intéressant Bien que: sur iOS4 et Rhino, le Matchmedia CODE> est préférable de ne pas être appelé (un comportement inattendu avait été causé et a eu le temps de déboguer plus profondément).
Peut-être que vous pouvez vérifier en prenant la version du système d'exploitation dans la requête En tant que variante, vous pouvez fournir un test de vitesse de la CPU en utilisant une grande boucle. Quelque chose comme iPhone3G (s) a un maximum de 600 MHz et iPhone4 a 1 GHz. Ainsi, il y a une distinction et vous pouvez l'attraper après quelques tests (boucle) et définir la vitesse de boucle pour chaque génération d'iPhone. p>
Mais note, toutes ces manières sont rugueuses et n'auraient peut-être pas été correcte dans d'autres conditions. P> navigator.appversion.indexof ("... code>
iPhone3G a Apple iOS 4.2.1
iPhone4 et 4s ont Apple iOS 5.0.1 mais iPhone3gs a la même chose. P>
pour (var i = 0, k = 1; i <5000000; i ++) k ++; code> et checkin consommé temps pour cela. P>
Je suis tombé sur un problème similaire il y a un moment. Travaillant sur le site Web de client qui a eu de nombreuses vidéos chargées via JavaScript, j'ai découvert que le format vidéo dont ils avaient besoin d'utiliser avaient un taux de cadre étrange qui ne fonctionnait pas sur iPhone 3GS -.
Après l'approche de ANNLAD, je suis arrivé à Cette solution qui a parfaitement adapté ce dont j'avais besoin: p> première vérification si l'utilisateur vient à moi depuis un iPod ou un iPhone. Ensuite, il vérifie le support de la rétine. Comme seul iPhone 4+ le prend en charge, j'ai réussi à appeler les fichiers vidéo correct des appareils plus anciens. p> p>
Quelque chose sur les méthodes de mesure plus de vitesse de la CPU: ils peuvent être une approche "impropre" ici, mais trouver la puissance de calcul de votre appareil cible pourrait être utile pour certains cas. p>
Voici donc quelque chose que je veux ajouter à ces méthodes: au lieu de compter une valeur fixe et de mesurer l'heure, il serait plus robuste de compter pour un temps fixe puis de comparer les valeurs atteintes. Si votre utilisateur vous rend visite à un périphérique beaucoup plus lent, peut-être parce qu'il se trouve à l'intérieur d'un émulateur, il devra attendre que vous compteriez à n. Si vous aviez quitté la boucle après, dites 200ms, vous auriez simplement réacqué une valeur très basse et l'UX n'a pas été influencé. P>
En outre, il est toujours agréable de savoir, combien de temps une opération prendra, elle réduit les incertitudes. P>
Ce serait une combinaison de deux méthodes en JavaScript:
p>
if ( isIphone() && iPhoneVersion() === "6"){ //code.. }
Martijn Pieters a supprimé cette post citant des réponses en double en tant que inacceptable. Reposter ici seulement.
Cela ne fonctionne pas si les personnes sélectionnent zoomé sur Paramètres> Affichage et luminosité> Vue.
@trungnnh a raison, régler "zoomé" changera la fenêtre.Screen.Width
J'aurais souhaité de ne pas, mais il y a des incohérences qui ne laissent pas beaucoup d'espace pour une approche idéaliste ( Stackoverflow.com/questions/8298696/... ).