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?

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


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!


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

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.