“모바일”장치의 디자인“예외”문자열 구성


16

iPhone, iPad, Android, 태블릿 등 사용자를 다른 디자인으로 리디렉션 할 때 "최첨단"의 예외 문자열은 무엇입니까?

즉, 나는

System -> Configuration -> Design

사용자 인터페이스에는 사용자 에이전트 문자열과 일치하는 정규식을 작성할 수있는 기능이 있습니다. 내가 찾고있는 것은 사람들이 데스크탑이 아닌 컴퓨터를 다른 모바일 및 / 또는 테마로 리디렉션하는 데 사용하는 특정 문자열입니까?

아니면 요즘 "예외"접근 방식보다 더 나은 접근 방법이 있습니까?

답변:


15

우리가 사용한 두 가지 버전이 있습니다. 첫 번째는 @Marius 가 FF Mobile 의 UA 문자열더 이상없는 특정 "Fennec"언급을 빼고 언급 한 것과 같습니다 . 비슷한 출처에서 얻었습니다.

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

두 번째는 동일하지만 "모바일"이라는 용어가 제거되어 사이트의 모바일 버전이 사용자 에이전트의 모바일을 포함하는 iPad에 제공되지 않습니다. 애플은 TN2262 에서 이것을 지적 하기도한다 .

iPad의 Safari는 "데스크톱"웹 환경을 제공 할 수 있으며 iPad는 큰 화면과 빠른 네트워크 연결을 제공하므로이 환경을 기대할 수 있습니다. 작은 화면의 모바일 장치에 최적화 된 웹 사이트 버전이 있다면이 모바일 버전을 iPad 사용자에게 제공하지 마십시오.

...

iPad의 Safari 사용자 에이전트 문자열에는 "Mobile"이라는 단어가 포함되어 있지만 "iPhone"이라는 단어는 포함되어 있지 않습니다. 현재 "모바일"로 자체 식별되는 브라우저에 모바일 컨텐츠를 제공하는 경우 사용자 에이전트 문자열 검사를 수정하여 iPad를 찾은 다음 잘못된 버전의 사이트를 보내지 않도록해야합니다.

FF Mobile에서 볼 수있는 내용에 따라이 문자열에서 "Android"를 사용하면 다양한 이유 때문에 UA 문자열에 포함 하기로 결정되었으므로 데스크탑 테마를 iPad가 아닌 모든 태블릿에 제공하려는 경우 문제가 발생할 수 있습니다. .

나는 솔직히 위의 문자열의 범위를 개인적으로 테스트하지 않았습니다. 나는 이것을 안다 : 그것은 복잡한 혼란이다! :)

참고 : EE 1.12 또는 이전 버전 (1.13은 체크하지 않은 상태)에서이 설정을하는 경우 Fagent가 제대로 작동하려면 Magento Support의 패치가 필요합니다. 릴리스 빌드에서 디자인 예외를 고려하지 않습니다.

업데이트 1 :

설계 예외가 작동하는 데 필요한 패치가 필요한 버그는 여전히 EE 1.13.0.0 및 1.13.1.0에 존재합니다. Magento 지원에서 제공하는 패치가 있으며 알려진 문제 목록에 있습니다. SUPEE-1598


나는 당신을 위해 1.13을 점검 할 것이지만 ...
philwinkle

1
나는 충분히 쉽게 확인할 수 있었다. 나는 지금 너무 게으르다. :)
davidalger

진지하게, 이것은 꽤 완전한 목록입니다. +1.
philwinkle

@ davidalger, 나는 첫 번째 표현을 사용했습니다 (당신이 언급했습니다). 이제 모든 태블릿, ipad, ipad mini에 데스크탑 사이트를 표시하는 방법은 무엇입니까? 모두 모바일 테마를 보여주기 때문입니다.
Kishore Patra

모바일 장치를 www.m.myDOMAIN.com으로 리디렉션하기 위해이 문자열을 어디에 두어야합니까? 마 젠토 1.9.1
Allysin

7

데스크톱 테마를 제공하는 태블릿과 모바일 테마를 제공하는 휴대폰에 대한 두 가지 디자인 예외를 추가했습니다. 먼저 태블릿을 타겟팅하는 예외를 추가 한 다음 휴대 전화를 타겟팅하는 예외를 추가합니다.

정제

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

전화

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

이것은 예상대로 거의 100 % 작동합니다. 크레딧을 주어야합니다. 내 정규직으로 사용 한 정규식 인 beeplogic 덕분에 대단히 감사합니다.


1
나는 이것이 오래되었다는 것을 알고 있지만 Ipad도 모바일 문자열을 사용하므로 전화 목록에서 제거해야합니다.
Toon Van Dooren


1

이것은 내가 사용한 것입니다 :

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

특정 버전의 Android 기기를 필터링해야 할 필요가있었습니다. iOS 버전을 필터링하기 위해 비슷한 접근 방식을 사용할 수 있습니다.

다음 예는 버전 "2. *", "3. *", "4.0 *"을 제외한 iPad, iPhone 및 모든 Android와 일치합니다.

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

부정적인 둘러보기를 사용하고 있습니다 . 여기 설명을 참조 하십시오 .
"> 2.3"을 모방하려고하면 정규식에서 작동하지 않지만 예제로 해결 방법이 필요합니다.
온라인 문자열에서 정규식 일치를 테스트하는 데 유용한 리소스는 Rubular입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.