Configuration des chaînes «d'exception» de conception pour les appareils «mobiles»


16

Quelles chaînes d'exception sont «à la pointe de la technologie» pour rediriger les utilisateurs d'iPhone, iPad, Android, tablette, etc. vers une conception différente?

Autrement dit, je me rends compte dans le

System -> Configuration -> Design

interface utilisateur, il existe une fonctionnalité qui me permet de créer une expression régulière qui correspond à la chaîne de l'agent utilisateur. Ce que je recherche, c'est quelles chaînes spécifiques les gens utilisent pour rediriger les ordinateurs autres que de bureau vers un autre thème mobile et / ou de réponse?

Ou existe-t-il une meilleure approche que l'approche "Exception" à adopter de nos jours?

Réponses:


15

Il existe deux versions différentes que nous avons utilisées. Le premier est le même que @Marius a mentionné moins la mention spécifique "Fennec" ( qui n'est plus dans la chaîne UA de FF Mobile). Je l'ai obtenu de sources similaires:

iPhone|iPod|BlackBerry|Palm|Googlebot-Mobile|Mobile|mobile|mobi|Windows Mobile|Safari Mobile|Android|Opera Mini

Le second est le même, mais avec le terme "Mobile" supprimé afin que la version mobile d'un site ne soit pas diffusée sur l'iPad, qui inclut Mobile dans son agent utilisateur. Apple met même un point d' honneur à le dire dans le TN2262 :

Safari sur iPad est capable de fournir une expérience Web "de bureau", et les utilisateurs s'attendront à cette expérience car l'iPad dispose d'un grand écran et d'une connectivité réseau rapide. Si vous disposez d'une version de votre site Web optimisée pour les appareils mobiles avec de petits écrans, NE PAS diffuser cette version mobile aux utilisateurs d'iPad.

...

Notez que la chaîne d'agent utilisateur Safari sur iPad contient le mot "Mobile", mais pas le mot "iPhone". Si vous diffusez actuellement du contenu mobile sur un navigateur qui s'auto-identifie comme "Mobile", vous devez modifier les contrôles de chaîne de votre agent utilisateur pour rechercher l'iPad et éviter de lui envoyer la mauvaise version de votre site.

Sur la base de ce que je vois sur FF Mobile, l'utilisation d'Android dans cette chaîne causera des problèmes si vous souhaitez que le thème du bureau soit servi sur toutes les tablettes (et pas seulement sur les iPad), car il a été décidé de l'inclure dans la chaîne UA pour diverses raisons. .

Honnêtement, je n'ai pas personnellement testé la couverture des chaînes ci-dessus. Je sais ceci: c'est un gâchis compliqué! :)

Remarque: Si vous configurez cela sur EE 1.12 ou une version antérieure (non cochée 1.13), vous aurez besoin d'un correctif du support Magento pour que le FPC fonctionne correctement. Il ne prend pas en compte les exceptions de conception dans la version.

Mise à jour 1:

Le bogue noté nécessitant un correctif pour que les exceptions de conception fonctionnent existe toujours dans EE 1.13.0.0 et 1.13.1.0. Un correctif est disponible auprès du support de Magento et il figure sur leur liste de problèmes connus: SUPEE-1598


Je vérifierais 1.13 pour vous ... mais ...
philwinkle

1
Je pourrais vérifier assez facilement, je suis juste trop paresseux pour le moment. :)
davidalger

Sérieusement, c'est une liste assez complète. +1.
philwinkle

@davidalger, j'ai utilisé la première expression (vous l'avez mentionnée). Maintenant, comment afficher le site de bureau sur toutes les tablettes, iPad, iPad mini? car ils affichent tous des thèmes mobiles.
Kishore Patra

où dois-je insérer ces chaînes pour rediriger les appareils mobiles vers www.m.myDOMAIN.com pour les appareils mobiles? Magento 1.9.1
Allysin

7

J'ai ajouté 2 exceptions de conception, une pour les tablettes, pour lesquelles je sers mon thème de bureau et une pour les téléphones, pour laquelle je sers mon thème mobile. J'ajoute d'abord l'exception ciblant les tablettes, puis l'exception ciblant les téléphones mobiles

Comprimés

iPad|Silk|Kindle|Xoom|SCH-I800|Tablet|GT-P10|SC-01C|SHW-M180S|SGH-T849|SCH-I800|SHW-M180L|SPH-P100|SGH-I987|zt180|HTC(.Flyer|\\_Flyer)|Sprint.ATP51|ViewPad7|pandigital(sprnova|nova)|Ideos.S7|Dell.Streak.7|Advent.Vega|A101IT|A70BHT|MID7015|Next2|nook|Windows NT|DROID RAZR

Téléphone (s

android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|iP(hone|od)|iris|kindle|lge |maemo|meego.+mobile|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|(Android.+Mobile)|NOKIA|SymbianOS|N900|BlackBerry|Mobile

Cela fonctionne à peu près à 100% comme prévu, je dois rendre hommage , et un grand merci à beeplogic qui est le regex que j'ai utilisé comme fondation, merci bip!


1
Je sais que c'est vieux mais je voulais juste remarquer que Ipad utilise également la chaîne Mobile, vous devez donc la supprimer de la liste des téléphones
Toon Van Dooren


1

C'est celui que j'ai utilisé:

android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|meego.+mobile|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino

0

J'avais un besoin spécifique de filtrer des versions spécifiques d'appareils Android. Une approche similaire peut être utilisée pour filtrer les versions iOS.

L'exemple suivant correspond à l'iPad, l'iPhone et tous les appareils Android, à l'exception des versions "2. *", "3. *", "4.0 *"

iPad|iPhone|Android ((?!(2\.|3\.|4\.0)).)

Il utilise des contournements négatifs, voir l'explication ici .
Notez qu'essayer d'imiter "> 2.3" ne fonctionnera pas dans regex, mais nécessite une solution de contournement comme exemple.
Une excellente ressource pour tester la correspondance des expressions rationnelles sur des chaînes en ligne est Rubular

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.