Configuración de cadenas de diseño "excepción" para dispositivos "móviles"

16

¿Qué cadenas de excepción son "estado del arte" para redirigir a los usuarios de iPhone, iPad, Android, tabletas, etc. a un diseño diferente?

Es decir, me doy cuenta en el

System -> Configuration -> Design

interfaz de usuario, hay una característica que me permite crear una expresión regular que coincida con la cadena del agente de usuario. Lo que estoy buscando es qué cadenas específicas están usando las personas para redirigir las computadoras que no son de escritorio a un tema móvil o de respuesta diferente.

¿O hay un mejor enfoque que el enfoque de "excepción" para tomar estos días?

Alan Storm
fuente

Respuestas:

15

Hay dos versiones diferentes que hemos usado. El primero es el mismo que @Marius mencionó menos la mención específica "Fennec" ( que ya no está en la cadena UA de FF Mobile). Lo obtuve de fuentes similares:

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

El segundo es el mismo, pero con el término "Móvil" eliminado para que la versión móvil de un sitio no se publique en el iPad, que incluye Móvil en su agente de usuario. Apple incluso hace un punto para llamar esto en TN2262 :

Safari en iPad es capaz de ofrecer una experiencia web de "escritorio", y los usuarios esperarán esta experiencia ya que el iPad tiene una pantalla grande y una conectividad de red rápida. Si tiene una versión de su sitio web que está optimizada para dispositivos móviles con pantallas pequeñas, NO sirva esta versión móvil a usuarios de iPad.

...

Tenga en cuenta que la cadena de agente de usuario de Safari en iPad contiene la palabra "Mobile", pero no contiene la palabra "iPhone". Si actualmente está sirviendo contenido móvil a cualquier navegador que se autoidentifique como "Móvil", debe modificar las verificaciones de la cadena del agente de usuario para buscar el iPad y evitar enviarle la versión incorrecta de su sitio.

Según lo que veo en FF Mobile, el uso de "Android" en esta cadena causará problemas si desea que el tema de escritorio se publique en todas las tabletas (y no solo en los iPads) ya que se decidió incluirlo en la cadena UA por varias razones .

Honestamente, no he probado personalmente la cobertura de las cadenas anteriores. Sí sé esto: ¡es un desastre complicado! :)

Nota: Si está configurando esto en EE 1.12 o anterior (no ha marcado 1.13), necesitará un parche de Magento Support para que el FPC funcione correctamente. No tiene en cuenta las excepciones de diseño en la versión de lanzamiento.

Actualización 1:

El error observado que requiere un parche para que las excepciones de diseño funcionen todavía existe en EE 1.13.0.0 y 1.13.1.0. Hay un parche disponible del soporte de Magento y está en su lista de problemas conocidos: SUPEE-1598

davidalger
fuente
Comprobaría 1.13 por ti ... pero ...
philwinkle
1
Podría comprobarlo con bastante facilidad, soy demasiado vago en este momento. :)
davidalger
Con toda seriedad, esta es una lista bastante completa. +1.
philwinkle
@davidalger, he usado la primera expresión (que mencionaste). Ahora, ¿cómo mostrar el sitio de escritorio en todas las tabletas, ipad, ipad mini? porque todos muestran temas móviles.
Kishore Patra
¿Dónde pongo estas cadenas para redirigir los dispositivos móviles a www.m.myDOMAIN.com para dispositivos móviles? Magento 1.9.1
Allysin
7

He agregado 2 excepciones de diseño, una para tabletas, para la cual sirvo mi tema de escritorio y otra para teléfonos, para la cual sirvo mi tema móvil. Primero agrego la excepción dirigida a las tabletas, y luego la excepción dirigida a los teléfonos móviles

Tabletas

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

Los telefonos

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

Esto funciona más o menos al 100% como se esperaba. Debo dar crédito, y muchas gracias a beeplogic, quien es la expresión regular que utilicé como base. ¡Gracias bip!

usuario2965205
fuente
1
Sé que esto es antiguo, pero solo quería notar que Ipad también usa la cadena móvil, por lo que debe eliminarla de la lista de teléfonos
Toon Van Dooren,
1

Este es uno que he usado:

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
fuente
0

Tenía una necesidad específica de filtrar versiones específicas de dispositivos Android. Se puede utilizar un enfoque similar para filtrar las versiones de iOS.

El siguiente ejemplo coincide con iPad, iPhone y todos los Android, excepto las versiones "2. *", "3. *", "4.0 *"

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

Está utilizando miradas negativas, vea la explicación aquí .
Tenga en cuenta que intentar imitar "> 2.3" no funcionará en expresiones regulares, pero necesita una solución alternativa como ejemplo.
Un gran recurso para probar la coincidencia de expresiones regulares en cadenas en línea es Rubular

tomg
fuente