Domanda

Quali stringhe di eccezione sono "stato dell'arte" per il reindirizzamento iPhone, iPad, Android, tablet, ecc agli utenti di un disegno diverso?

Cioè, mi rendo conto che nella

System -> Configuration -> Design

interfaccia utente, c'è una caratteristica che mi permette di creare un'espressione regolare che è confrontata con la stringa user agent. Quello che sto cercando è quello che la gente specifiche stringhe stanno utilizzando per reindirizzare i computer non-desktop ad un diverso tema mobile e / o la risposta?

O c'è un approccio migliore rispetto all'approccio "eccezione" a prendere in questi giorni?

È stato utile?

Soluzione

Ci sono due versioni diverse, che abbiamo utilizzato. Il primo è la stessa che @Marius fatto menzione di meno la specifica menzione "Fennec" ( che non è più nella stringa UA di FF mobile). L'ho avuta da fonti assimilate:

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

Il secondo è lo stesso, ma con il termine "Mobile" rimosso in modo che la versione mobile di un sito non è servita per l'iPad, che include mobile in essa di user agent. Apple fa anche un punto di chiamare questo fuori in TN2262 :

Safari su iPad è in grado di fornire un "desktop" esperienza web, e gli utenti si aspettano questa esperienza dal iPad ha un grande schermo e la connettività di rete veloce. Se si dispone di una versione del tuo sito web che è ottimizzato per i dispositivi mobili con schermi piccoli, non servono questa versione mobile per gli utenti iPad.

...

Si noti che la stringa user agent Safari su iPad contiene la parola "Mobile", ma non contiene la parola "iPhone". Se siete attualmente che servono contenuti mobili di qualsiasi browser che l'auto-identifica come "Mobile", si dovrebbe modificare i vostri controlli stringa agente utente a cercare iPad e evitare l'invio è la versione sbagliata di tuo sito.

In base a ciò che vedo sul FF cellulare, l'utilizzo di "Android" in questa stringa causerà problemi se si desidera che il tema del desktop servito a tutti i tablet (e non solo iPad) dal che è stato deciso per includerlo nella stringa UA per vari motivi.

Ho sinceramente non testato personalmente la copertura delle corde di cui sopra. So questo: E 'un pasticcio complicato! :)

Nota: Se si imposta questo su EE 1.12 o versioni precedenti (non si è verificata 1.13) avrete bisogno di una patch da Magento supporto per il FPC per funzionare correttamente. E non riesce a prendere le eccezioni di progettazione in considerazione nella build di rilascio.

Aggiornamento 1:

Il bug notato che richiede una patch per la progettazione eccezioni a lavoro esiste ancora in EE 1.13.0.0 e 1.13.1.0. C'è una patch disponibile da supporto Magento ed è sulla loro lista di problemi noti: SUPEE-1598

Altri suggerimenti

Ho aggiunto 2 eccezioni di progettazione, uno per i tablet, per il quale ho servire il mio tema del desktop e uno per i telefoni, per il quale ho servire il mio tema mobile. Aggiungo l'eccezione di mira le compresse prima, e poi l'eccezione di mira le telefoni cellulari

Compresse

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

Telefoni

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

Questo funziona praticamente al 100% come previsto Devo dare credito, e un enorme grazie a beeplogic , che sono io regex usato come la mia fondazione, grazie beep!

Ecco un elenco di valori possibili. Sono quasi sicuro che questi non sono tutti i valori possibili, ma copre la maggior parte dei casi:

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

Fonti:
http://magebase.com/magento-tutorials/magento-design -exceptions-ha spiegato /
http://inchoo.net/ecommerce/magento/magento-mobile -theme-imobile /

Questo è uno che ho usato:

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

ho avuto la necessità specifica di filtrare versioni specifiche di dispositivi Android. approccio simile può essere utilizzato per filtrare le versioni di iOS.

L'esempio seguente corrisponde iPad, iPhone e Android tutto tranne le versioni "2. *", "* 3.", "4,0 *"

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

Si sta usando lookarounds negative, si veda la spiegazione qui .
Nota che cercare di mimare "> 2.3" non funzionerà in regex, ma hanno bisogno di una soluzione come l'esempio.
Una grande risorsa per testare espressioni regolari corrispondente su corde Online Rubular

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top