Configurazione di stringhe di "eccezione" di progettazione per dispositivi "mobili"


16

Quali stringhe di eccezione sono "all'avanguardia" per reindirizzare gli utenti di iPhone, iPad, Android, tablet, ecc. A un design diverso?

Cioè, mi rendo conto nel

System -> Configuration -> Design

interfaccia utente, c'è una funzione che mi permette di creare un'espressione regolare che corrisponda alla stringa dell'agente utente. Quello che sto cercando è quali stringhe specifiche le persone utilizzano per reindirizzare i computer non desktop a un diverso tema mobile e / o di risposta?

O c'è un approccio migliore rispetto all'approccio "eccezione" da adottare in questi giorni?

Risposte:


15

Ci sono due diverse versioni che abbiamo usato. Il primo è lo stesso che @Marius ha menzionato meno la menzione specifica "Fennec" ( che non è più nella stringa UA di FF Mobile). L'ho preso da fonti simili:

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 venga pubblicata su iPad, che include Mobile nel relativo agente utente. Apple ha anche un punto per chiamarlo in TN2262 :

Safari su iPad è in grado di offrire un'esperienza web "desktop" e gli utenti si aspettano questa esperienza poiché iPad ha un grande schermo e una connettività di rete veloce. Se disponi di una versione del tuo sito Web ottimizzata per dispositivi mobili con schermi di piccole dimensioni, NON offrire questa versione mobile agli utenti iPad.

...

Nota che la stringa dell'agente utente Safari su iPad contiene la parola "Mobile", ma non contiene la parola "iPhone". Se al momento stai offrendo contenuti mobili a qualsiasi browser che si identifica automaticamente come "mobile", dovresti modificare i controlli delle stringhe dell'agente utente per cercare iPad ed evitare di inviarlo con la versione errata del tuo sito.

Sulla base di ciò che vedo su FF Mobile, l'uso di "Android" in questa stringa causerà problemi se si desidera che il tema del desktop venga offerto a tutti i tablet (e non solo agli iPad) poiché è stato deciso di includerlo nella stringa UA per vari motivi .

Onestamente non ho testato personalmente la copertura delle stringhe sopra. Lo so: è un casino complicato! :)

Nota: se lo stai configurando su EE 1.12 o precedente (non hai controllato 1.13) avrai bisogno di una patch dal supporto Magento affinché l'FPC funzioni correttamente. Non riesce a tenere conto delle eccezioni di progettazione nella build di rilascio.

Aggiornamento 1:

Il bug riscontrato che richiede una patch per il funzionamento delle eccezioni di progettazione esiste ancora in EE 1.13.0.0 e 1.13.1.0. C'è una patch disponibile dal supporto Magento ed è nella loro lista dei problemi noti: SUPEE-1598



1
Potrei controllare abbastanza facilmente, sono troppo pigro al momento. :)
davidalger,

In tutta serietà, questa è una lista abbastanza completa. +1.
Philwinkle,

@davidalger, ho usato la prima espressione (che hai menzionato). Ora come visualizzare il sito desktop su tutti i tablet, iPad, iPad mini? perché tutti mostrano temi mobili.
Kishore Patra

dove inserisco queste stringhe per reindirizzare i dispositivi mobili su www.m.myDOMAIN.com per i dispositivi mobili? Magento 1.9.1
Allysin,

7

Ho aggiunto 2 eccezioni di progettazione, una per tablet, per la quale offro il mio tema desktop e una per telefoni, per la quale offro il mio tema mobile. Aggiungo prima l'eccezione destinata ai tablet, quindi l'eccezione destinata ai 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

Cellulari

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

Funziona praticamente al 100% come previsto, devo ringraziare, e un enorme ringraziamento al beeplogic che è regex che ho usato come base, grazie bip!


1
So che questo è vecchio ma volevo solo notare che Ipad utilizza anche la stringa Mobile, quindi dovresti rimuoverla dall'elenco dei telefoni
Toon Van Dooren


1

Questo è quello 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

0

Avevo un'esigenza specifica di filtrare versioni specifiche di dispositivi Android. Un approccio simile può essere utilizzato per filtrare le versioni di iOS.

L'esempio seguente corrisponde a iPad, iPhone e tutti gli Android tranne le versioni "2. *", "3. *", "4.0 *"

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

Sta usando delle soluzioni negative, vedi la spiegazione qui .
Si noti che il tentativo di imitare "> 2.3" non funzionerà in regex, ma necessita di una soluzione alternativa come esempio.
Una grande risorsa per testare la corrispondenza regex sulle stringhe online è Rubular

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.