Quelqu'un sait-il un moyen de détecter l'ensemble des appareils plus anciens: p>
De l'ensemble plus récent: p>
J'ai trouvé des méthodes pour détecter l'iPhone 4 et l'iPad (en utilisant la taille de l'écran). Cependant, est-il un moyen de dire l'iPhone 3GS et l'iPod touch 3G du 1G iPod touch et l'iPhone 2G? P>
Exigences: p>
(exemple pour l'iPhone 2G et iPod touch 1G détection, à l'aide d'un "caché" méthode: "iPad et iPhone 3G et plus tard en charge le profil H.264 de base 3.1 Les versions antérieures de support iPhone H.264 profil de base 3.0.". de https://developer.apple.com /library/archive/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/AudioandVideoTagBasics/AudioandVideoTagBasics.html ). p>
Edit: Il n'y a aucun moyen que je peux contourner cette exigence. Il n'y a pas de solution de rechange en plus cette détection p>
3 Réponses :
Avez-vous regardé dans la chaîne userAgent? p>
Par exemple, mon iPhone 4 retourne: p>
Le Je crois que les anciennes versions des téléphones ne peuvent pas exécuter les nouvelles versions du système d'exploitation. Vous pourrez donc être capable de trouver un ensemble de codes de microprogramme qui ne se présenteront que sur les anciennes versions des téléphones. Cela vous permettra au moins de détecter certaines des différences. P>
the wurfl possède de bonnes références et des chaînes d'agent utilisateur et comment détecter le périphérique et les capacités en fonction de ce. Il y a une liste navigable d'entre eux et ils pourraient peut-être détecter correctement les appareils. Je n'ai pas accès au matériel ancien, je ne peux donc pas confirmer que cela fonctionne tout le temps. Vous pouvez explorer ce que votre appareil apparaît comme à l'aide de: http://www.tera-wurfl.com/ Explorez / et regarder les différentes chaînes de conversation versées. P> Mozilla / 5.0 (iPhone; U; CPU iPhone OS 4_0_1 comme Mac OS X; EN-US) Applewebkit / 532.9 (KHTML, comme Gecko) Version / 4.0.5 MOBILE / 8A306 SAFARI / 6531.22.7 < / code> p>
mobile / 8a306 code> est la version du micrologiciel (juste Google pour 8A306 iPhone p>
Les iPhone 3G et 3GS peuvent tous les deux exécuter IOS 4. Cette chaîne d'agent d'utilisateur indique uniquement la version du micrologiciel, et non le modèle de périphérique nécessaire.
(En outre, le site wurfl n'a que des définitions pour iPhone ou iPod Touch: rien de plus sur des modèles spécifiques.)
Je ne crois pas que l'iPod Touch 1st Gen exécutera OS 4.0. Mais encore une fois, cela ne vous donne pas les détails exacts dont vous avez besoin. En outre, s'il s'agit vraiment d'une chose de calcul, vous devriez mettre en partie votre boucle pour voir jusqu'où il progresse. Facile à voir si vous l'avez fait aussi loin que vous le souhaitez, et si l'appareil ne peut pas suivre, vous pouvez citer ou apporter des modifications. Pas aussi agréable que connaître le devant.
Je suis vraiment triste que cette non-réponse qui me dit des informations non liées et ne répond pas à la question a eu la moitié de ma générosité :(.
Si le nombre de cranches serait un discriminateur ... Utilisez-le! Il suffit de comparaître une petite boucle (appelez-le Bogommes) et dans environ 0,5 seconde, vous savez ce que vous êtes à la hauteur. P>
Le matériel et le logiciel sont définis, la charge est très définie (bien .. iOS 4 'multitâche multitâche'?), donc je pense que cela peut être très précis. p>
C'est ce que je pense que je vais faire, mais mon test que j'ai créé n'était que d'environ 95% précis: /.
Je ne sais pas ce que vous avez essayé bien sûr, mais j'essaierais de cibler des fonctionnalités spécifiques de la CPU que JS ne peut pas masquer. Il semble sur X86, vous pouvez prédire avec précision la taille du cache L1 à partir de JS, par exemple. en accédant à une chaîne (semi-) au hasard. Augmentation de la taille de la chaîne et de la mesure de 100 000 temps d'accès, je vois un grand saut à 32kb. Sur un 3G, je ne peux pas voir une telle coupe claire. Si vous voyez un sur les 3GS, vous avez un moyen de les distinguer. Un autre peut être de comparer les opérations de point flottant par rapport aux entiers.
Une autre façon de couper pour analyser la vitesse de la CPU brute sans la couche de lenteur JS, peut être de concevoir une expression régulière complexe avec beaucoup de backtracking. Regexps sera géré par une bibliothèque et utilisera probablement un code C optimisé, ce dont vous avez besoin.
J'accepte cette réponse parce que cela répond à ma question, contrairement à l'autre. Désolé de ne pas avoir la prime, les MVD.
Pas de problème, mais merci quand même. Assurez-vous de partager votre solution si vous réussissez à en trouver un ;-)
Petite référence qui détecte les anciens modèles. La référence prend 5-30ms donc pas de problème réel.
@Dave Delong: Un exemple de raison serait de désactiver des portions de Number-Crunching lourdes du site Web sur les téléphones plus anciens, ce qui ne peut pas gérer la charge. (Ce n'est pas la raison dans ce cas, cependant, mais je ne peux pas divulguer la raison ici: /.)