Konfigurieren von Ausnahmebedingungszeichenfolgen für mobile Geräte

16

Welche Exception-Zeichenfolgen sind "Stand der Technik", um Benutzer von iPhone, iPad, Android, Tablet usw. auf ein anderes Design umzuleiten?

Das heißt, ich erkenne in der

System -> Configuration -> Design

Benutzeroberfläche gibt es eine Funktion, mit der ich einen regulären Ausdruck erstellen kann, der mit der Zeichenfolge des Benutzeragenten abgeglichen wird. Ich suche nach bestimmten Zeichenfolgen, mit denen Benutzer Nicht-Desktop-Computer zu einem anderen Mobil- und / oder Antwortthema umleiten.

Oder gibt es einen besseren Ansatz als den "Exception" -Ansatz, der heutzutage angewendet wird?

Alan Storm
quelle

Antworten:

15

Es gibt zwei verschiedene Versionen, die wir verwendet haben. Der erste ist derselbe, den @Marius erwähnte, abzüglich der spezifischen "Fennec" -Erwähnung ( die nicht mehr in der UA-Zeichenfolge von FF Mobile enthalten ist). Ich habe es aus ähnlichen Quellen erhalten:

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

Der zweite ist derselbe, wobei jedoch der Begriff "Mobil" entfernt wurde, sodass die Mobilversion einer Website nicht für das iPad bereitgestellt wird, das Mobile in seinem Benutzeragenten enthält. Apple macht in TN2262 sogar darauf aufmerksam :

Safari auf dem iPad ist in der Lage, ein "Desktop" -Web-Erlebnis zu bieten, und Benutzer werden dieses Erlebnis erwarten, da das iPad über einen großen Bildschirm und eine schnelle Netzwerkverbindung verfügt. Wenn Sie eine Version Ihrer Website haben, die für mobile Geräte mit kleinen Bildschirmen optimiert ist, dürfen Sie diese mobile Version NICHT für iPad-Benutzer bereitstellen.

...

Beachten Sie, dass die Zeichenfolge für den Safari auf iPad-Benutzeragenten das Wort "Mobile" enthält, jedoch nicht das Wort "iPhone". Wenn Sie derzeit mobilen Content für einen Browser bereitstellen, der sich als "Mobil" identifiziert, sollten Sie die Zeichenfolgenprüfungen Ihres Benutzeragenten so ändern, dass er nach iPad sucht und nicht die falsche Version Ihrer Website sendet.

Basierend auf dem, was ich auf FF Mobile sehe, wird die Verwendung von "Android" in dieser Zeichenfolge Probleme verursachen, wenn das Desktop-Design für alle Tablets (und nicht nur für iPads) bereitgestellt werden soll, da aus verschiedenen Gründen entschieden wurde , es in die UA-Zeichenfolge aufzunehmen .

Ich habe die Berichterstattung über die oben genannten Saiten ehrlich gesagt nicht persönlich getestet. Ich weiß das: Es ist ein kompliziertes Durcheinander! :)

Hinweis: Wenn Sie dies auf EE 1.12 oder früher einrichten (1.13 nicht aktiviert), benötigen Sie einen Patch des Magento-Supports, damit die FPC ordnungsgemäß funktioniert. Konstruktionsausnahmen werden im Release-Build nicht berücksichtigt.

Update 1:

Der bekannte Fehler, der einen Patch erfordert, damit Entwurfsausnahmen funktionieren, ist in EE 1.13.0.0 und 1.13.1.0 weiterhin vorhanden. Es gibt einen Patch vom Magento-Support, der in der Liste der bekannten Probleme aufgeführt ist: SUPEE-1598

Davidalger
quelle
Ich würde 1.13 für Sie überprüfen ... aber ...
Philwinkle
1
Ich konnte es leicht genug überprüfen, ich bin im Moment einfach zu faul. :)
Davidalger
Im Ernst, das ist eine ziemlich vollständige Liste. +1.
Philwinkle
@davidalger, ich habe den ersten Ausdruck verwendet (du erwähntest). Nun, wie man Desktop-Site in allen Tablets, iPad, iPad Mini? weil sie alle mobile Themen zeigen.
Kishore Patra
Wo kann ich diese Zeichenfolgen einfügen, um Mobilgeräte auf www.m.myDOMAIN.com für Mobilgeräte umzuleiten? Magento 1.9.1
Allysin
7

Ich habe 2 Design-Ausnahmen hinzugefügt, eine für Tablets, für die ich mein Desktop-Thema und eine für Handys, für die ich mein Handy-Thema bediene. Ich füge zuerst die Ausnahmebedingung für Tablets und dann die Ausnahmebedingung für Mobiltelefone hinzu

Tablets

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

Telefone

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

Das funktioniert zu 100% wie erwartet. Ich muss mein Lob aussprechen und ein großes Dankeschön an beeplogic , die Regex, die ich als Grundlage verwendet habe. Danke Piepton!

user2965205
quelle
1
Ich weiß, dass dies alt ist, wollte aber nur feststellen, dass das iPad auch die Handy-Zeichenfolge verwendet, sodass Sie sie von der Telefonliste entfernen sollten
Toon Van Dooren
1

Dies ist eine, die ich benutzt habe:

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

Ich musste bestimmte Versionen von Android-Geräten herausfiltern. Ein ähnlicher Ansatz kann zum Herausfiltern von iOS-Versionen verwendet werden.

Das folgende Beispiel entspricht iPad, iPhone und allen Android-Geräten mit Ausnahme der Versionen "2. *", "3. *", "4.0 *".

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

Es werden negative Lookarounds verwendet (siehe Erklärung hier) .
Beachten Sie, dass der Versuch, "> 2.3" nachzuahmen, in regulären Ausdrücken nicht funktioniert, jedoch eine Problemumgehung als Beispiel benötigt. Rubular
ist eine großartige Ressource zum Testen des Regex-Abgleichs für Zeichenfolgen im Internet

Tomg
quelle