Konfigurowanie ciągów znaków „wyjątku” dla urządzeń „mobilnych”

16

Jakie ciągi wyjątków są „najnowocześniejsze” do przekierowywania użytkowników iPhone'a, iPada, Androida, tabletu itp. Do innego projektu?

To znaczy, zdaję sobie sprawę z

System -> Configuration -> Design

interfejs użytkownika, istnieje funkcja, która pozwala mi utworzyć wyrażenie regularne dopasowane do ciągu agenta użytkownika. Czego szukam, jakich konkretnych ciągów używają ludzie do przekierowywania komputerów innych niż stacjonarne na inny motyw mobilny i / lub temat odpowiedzi?

Czy może istnieje lepsze podejście niż podejście „wyjątkowe”?

Alan Storm
źródło

Odpowiedzi:

15

Istnieją dwie różne wersje, których użyliśmy. Pierwszy to ten sam, o którym @Marius wspomniał minus specyficzna wzmianka „Fennec” ( która nie jest już w ciągu UA FF Mobile). Mam go z podobnych źródeł:

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

Drugi jest taki sam, ale z usuniętym terminem „Mobile”, tak że mobilna wersja witryny nie jest wyświetlana na iPadzie, co obejmuje Mobile w swoim kliencie użytkownika. Apple nawet wskazuje to na TN2262 :

Safari na iPadzie jest w stanie zapewnić wrażenia z korzystania z Internetu „na pulpicie”, a użytkownicy będą się tego spodziewać, ponieważ iPad ma duży ekran i szybką łączność z siecią. Jeśli masz wersję swojej witryny zoptymalizowaną pod kątem urządzeń mobilnych z małymi ekranami, NIE udostępniaj tej wersji mobilnej użytkownikom iPada.

...

Pamiętaj, że ciąg agenta użytkownika Safari na iPadzie zawiera słowo „Mobile”, ale nie zawiera słowa „iPhone”. Jeśli obecnie udostępniasz treści mobilne w dowolnej przeglądarce, która samodzielnie identyfikuje się jako „Mobilna”, zmodyfikuj ciąg znaków agenta użytkownika, aby wyszukać iPada i unikać wysyłania niewłaściwej wersji witryny.

W oparciu o to, co widzę na FF Mobile, użycie „Androida” w tym ciągu spowoduje problemy, jeśli chcesz, aby motyw pulpitu był wyświetlany na wszystkich tabletach (a nie tylko na iPadzie), ponieważ z różnych powodów postanowiono dołączyć go do ciągu UA .

Szczerze mówiąc, nie testowałem osobiście pokrycia powyższych ciągów. Wiem to: to skomplikowany bałagan! :)

Uwaga: Jeśli konfigurujesz to na EE 1.12 lub wcześniejszym (nie sprawdzono 1.13), będziesz potrzebował łatki z Magento Support, aby FPC działał poprawnie. Nie uwzględnia wyjątków projektowych w kompilacji wydania.

Aktualizacja 1:

Zauważony błąd wymagający poprawki do działania wyjątków projektowych nadal występuje w EE 1.13.0.0 i 1.13.1.0. Dostępna jest łatka dostępna w dziale pomocy Magento i znajduje się na liście znanych problemów: SUPEE-1598

davidalger
źródło
Sprawdziłbym dla ciebie 1,13 ... ale ...
philwinkle
1
Mogłem łatwo sprawdzić, jestem w tej chwili po prostu zbyt leniwy. :)
davidalger
Z całą powagą jest to dość kompletna lista. +1.
philwinkle
@ Davidalger, użyłem pierwszego wyrażenia (wspomniałeś). Teraz, jak wyświetlić witrynę na komputery stacjonarne na wszystkich tabletach, iPadzie i iPadzie mini? ponieważ wszystkie pokazują motywy mobilne.
Kishore Patra,
gdzie mam umieścić te ciągi, aby przekierować urządzenia mobilne na www.m.myDOMAIN.com dla urządzeń mobilnych? Magento 1.9.1
Allysin,
7

Dodałem 2 wyjątki projektowe, jeden dla tabletów, dla których obsługuję motyw pulpitu i jeden dla telefonów, dla których obsługuję motyw mobilny. Najpierw dodaję wyjątek dotyczący tabletów, a następnie wyjątek dotyczący telefonów komórkowych

Tabletki

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

Telefony

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

Działa to prawie w 100% zgodnie z oczekiwaniami, muszę przyznać, i wielkie dzięki beeplogic, którego regex użyłem jako podstawy, dziękuję beep!

użytkownik2965205
źródło
1
Wiem, że to stare, ale chciałem zauważyć, że Ipad również używa ciągu Mobile, więc powinieneś usunąć go z listy telefonów
Toon Van Dooren
1

Tego użyłem:

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
źródło
0

Miałem konkretną potrzebę odfiltrowania określonych wersji urządzeń z Androidem. Podobne podejście można zastosować do odfiltrowania wersji iOS.

Poniższy przykład pasuje do iPada, iPhone'a i wszystkich Androida z wyjątkiem wersji „2. *”, „3. *”, „4.0 *”

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

Wykorzystuje negatywne spojrzenia, zobacz wyjaśnienie tutaj .
Zauważ, że próba naśladowania „> 2.3” nie będzie działać w wyrażeniu regularnym, ale wymaga obejścia jako przykładu. Świetnym
źródłem do testowania dopasowania wyrażeń regularnych w łańcuchach online jest Rubular

tomg
źródło