Configurando seqüências de design de "exceção" para dispositivos "móveis"

16

Quais strings de exceção são "estado da arte" para redirecionar usuários de iPhone, iPad, Android, tablet etc. para um design diferente?

Ou seja, eu percebo no

System -> Configuration -> Design

interface do usuário, há um recurso que me permite criar uma expressão regular que corresponde à string do agente do usuário. O que estou procurando é quais sequências específicas as pessoas estão usando para redirecionar computadores que não são de desktop para um tema móvel e / ou de resposta diferente?

Ou existe uma abordagem melhor do que a abordagem "Exceção" a ser adotada atualmente?

Alan Storm
fonte

Respostas:

15

Existem duas versões diferentes que usamos. O primeiro é o mesmo que o @Marius mencionou menos a menção específica "Fennec" ( que não está mais na string UA do FF Mobile). Eu o obtive de fontes semelhantes:

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

O segundo é o mesmo, mas com o termo "Celular" removido para que a versão móvel de um site não seja veiculada no iPad, o que inclui o Mobile no seu agente de usuário. A Apple faz questão de chamar isso no TN2262 :

O Safari no iPad é capaz de oferecer uma experiência na Web "desktop", e os usuários esperam essa experiência, pois o iPad possui uma tela grande e uma conectividade de rede rápida. Se você possui uma versão do seu site otimizada para dispositivos móveis com telas pequenas, NÃO envie essa versão para usuários do iPad.

...

Observe que a sequência do agente do usuário do Safari no iPad contém a palavra "Celular", mas não a palavra "iPhone". Se você estiver veiculando conteúdo para celular em qualquer navegador que se identifique como "Celular", modifique as verificações de sequência do agente do usuário para procurar o iPad e evitar o envio da versão incorreta do site.

Com base no que vejo no FF Mobile, o uso de "Android" nessa cadeia causará problemas se você quiser que o tema da área de trabalho seja exibido em todos os tablets (e não apenas nos iPads), pois foi decidido incluí-lo na cadeia UA por vários motivos .

Sinceramente, pessoalmente não testei a cobertura das strings acima. Eu sei o seguinte: é uma bagunça complicada! :)

Nota: Se você estiver configurando isso no EE 1.12 ou anterior (não foi verificado o 1.13), precisará de um patch do Suporte Magento para que o FPC funcione corretamente. Ele não leva em consideração as exceções de design na compilação do release.

Atualização 1:

O bug observado que requer um patch para que as exceções de design funcionem ainda existe no EE 1.13.0.0 e 1.13.1.0. Existe um patch disponível no suporte do Magento e ele está na lista de problemas conhecidos: SUPEE-1598

davidalger
fonte
Eu iria verificar 1.13 para você ... mas ...
philwinkle
1
Eu poderia verificar com bastante facilidade, estou com preguiça no momento. :)
davidalger
Com toda a seriedade, esta é uma lista bastante completa. +1.
22613 philwinkle
@ Davididalger, eu usei a primeira expressão (você mencionou). Agora, como exibir site de desktop em todos os tablets, ipad, ipad mini? porque todos estão mostrando temas para celular.
Kishore Patra
onde coloco essas sequências para redirecionar dispositivos móveis para www.m.myDOMAIN.com para dispositivos móveis? Magento 1.9.1
Allysin
7

Adicionei 2 exceções de design, uma para tablets, para a qual sirvo meu tema da área de trabalho e outra para telefones, para a qual sirvo meu tema para celular. Eu adiciono a exceção direcionada aos tablets primeiro e depois a exceção direcionada aos telefones celulares

Comprimidos

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

Telefones

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

Isso funciona praticamente 100% conforme o esperado. Devo dar crédito e um enorme agradecimento ao beeplogic, que é o regex que usei como base, obrigado, bipe!

user2965205
fonte
1
Eu sei que isto é antiga, mas só queria aviso de que Ipad também usa a corda móvel para que você deve removê-lo da lista de telefones
Toon Van Dooren
1

Este é um que eu usei:

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
beeplogic
fonte
0

Eu tinha uma necessidade específica de filtrar versões específicas de dispositivos Android. Uma abordagem semelhante pode ser usada para filtrar as versões do iOS.

O exemplo a seguir corresponde ao iPad, iPhone e todo o Android, exceto as versões "2. *", "3. *", "4.0 *"

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

Está usando lookarounds negativos, veja a explicação aqui .
Observe que tentar imitar "> 2.3" não funcionará no regex, mas precisará de uma solução alternativa como o exemplo.
Um ótimo recurso para testar a correspondência de expressões regulares em seqüências de caracteres online é o Rubular

tomg
fonte