“Mobil” Cihazlar için Tasarım “İstisna” Dizelerini Yapılandırma


16

İPhone, iPad, Android, tablet vb. Kullanıcıları farklı bir tasarıma yönlendirmek için hangi istisna dizeleri "son teknoloji ürünüdür"?

Yani,

System -> Configuration -> Design

kullanıcı arayüzü, kullanıcı aracısı dizesiyle eşleşen normal bir ifade oluşturmama izin veren bir özellik var. Aradığım şey, kullanıcıların masaüstü olmayan bilgisayarları farklı bir mobil ve / veya yanıt temasına yönlendirmek için hangi dizeleri kullanıyor?

Yoksa bugünlerde "İstisna" yaklaşımından daha iyi bir yaklaşım var mı?

Yanıtlar:


15

Kullandığımız iki farklı versiyon var. Birincisi, @Marius'un eksi spesifik "Fennec" sözünden bahsettiği ile aynıdır ( artık FF Mobile'ın UA dizgisinde değil ). Benzer kaynaklardan aldım:

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

İkincisi aynı, ancak "Mobil" terimi kaldırıldığında, bir sitenin mobil sürümü iPad'e sunuluyor, bu da Mobil'i kullanıcı aracısına dahil ediyor. Apple, TN2262'de bunu söylemek için bile bir noktaya değiniyor :

İPad'de Safari, "masaüstü" web deneyimi sunma özelliğine sahiptir ve iPad'in geniş bir ekrana ve hızlı ağ bağlantısına sahip olması nedeniyle kullanıcılar bu deneyimi bekler. Web sitenizin küçük ekranlı mobil cihazlar için optimize edilmiş bir sürümüne sahipseniz, bu mobil sürümü iPad kullanıcılarına SUNMAYIN.

...

İPad'deki Safari kullanıcı aracısı dizesinin "Mobil" kelimesini içerdiğini, ancak "iPhone" kelimesini içermediğini unutmayın. Şu anda mobil içeriği "Mobil" olarak tanımlayan herhangi bir tarayıcıya sunuyorsanız, kullanıcı aracısı dizesi kontrollerinizi iPad'i arayacak ve sitenizin yanlış sürümünü göndermekten kaçınacak şekilde değiştirmeniz gerekir.

FF Mobile'da gördüklerime dayanarak, masaüstü dizisinin çeşitli nedenlerle UA dizesine dahil edilmesine karar verildiğinden masaüstü temasının tüm tabletlere (ve sadece iPad'lere değil) sunulmasını istiyorsanız bu dizede "Android" kullanmak sorun yaratacaktır. .

Dürüst olmak gerekirse yukarıdaki dizelerin kapsamını şahsen test etmedim. Bunu biliyorum: Bu karmaşık bir karmaşa! :)

Not: Bunu EE 1.12 veya önceki bir sürümüne (1.13 işaretlemediyseniz) ayarlıyorsanız, FPC'nin düzgün çalışması için Magento Destek'ten bir yamaya ihtiyacınız olacaktır. Sürüm derlemesinde tasarım istisnalarını dikkate almaz.

Güncelleme 1:

Tasarım istisnalarının çalışması için bir yama gerektiren belirtilen hata hala EE 1.13.0.0 ve 1.13.1.0'da bulunmaktadır. Magento desteğinden bir yama var ve bilinen sorunlar listesinde: SUPEE-1598


Senin için 1.13'ü kontrol ederim ... ama ...
philwinkle

1
Kolayca kontrol edebilirdim, şu anda çok tembelim. :)
davidalger

Bütün ciddiyetle, bu oldukça eksiksiz bir liste. +1.
philwinkle

@davidalger, ilk ifadeyi kullandım (bahsettiğiniz). Şimdi nasıl masaüstü sitesi tüm tablet, ipad, ipad mini görüntülemek için? çünkü hepsi mobil temalar gösteriyor.
Kishore Patra

mobil cihazları mobil cihazlar için www.m.myDOMAIN.com adresine yönlendirmek için bu dizeleri nereye koyabilirim? Magento 1.9.1
Allysin

7

Biri masaüstü temamı sunduğum tabletler için, diğeri de mobil temam için sunduğum telefonlar için 2 tasarım istisnası ekledim. Önce tabletleri hedefleyen istisnayı, ardından cep telefonlarını hedefleyen istisnayı ekliyorum

Tabletler

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

Telefonlar

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

Bu beklediğim gibi neredeyse% 100 çalışıyor Kredi vermeliyim ve vakfım olarak kullandığım regex olan beeplogic'e çok teşekkürler , Bip sesi duyuyorum!


1
Bu eski olduğunu biliyorum ama sadece Ipad Mobil dize kullandığını fark etmek istedim, bu yüzden onu telefon listesinden kaldırmalısınız
Toon Van Dooren


1

Bu benim kullandığım:

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 cihazların belirli sürümlerini filtrelemek için özel bir ihtiyacım vardı. Benzer yaklaşım iOS sürümlerini filtrelemek için kullanılabilir.

Aşağıdaki örnekte iPad, iPhone ve "2. *", "3. *", "4.0 *" sürümleri dışındaki tüm Android ile eşleşmektedir

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

Bu, negatif lookarounds kullanarak açıklamaya bakın edilir burada .
"> 2.3" ü taklit etmeye çalışmanın normal ifadede işe yaramayacağını, ancak örnek olarak bir geçici çözüm gerektirdiğini unutmayın.
Çevrimiçi dizelerde normal ifade eşleşmesini test etmek için harika bir kaynak Rubular

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.