การกำหนดค่าการออกแบบสตริง "ข้อยกเว้น" สำหรับอุปกรณ์ "มือถือ"


16

สตริงข้อยกเว้นคือ "สถานะของศิลปะ" สำหรับการเปลี่ยนเส้นทางผู้ใช้ iPhone, iPad, Android, แท็บเล็ตและอื่น ๆ ไปยังการออกแบบที่แตกต่างกันอย่างไร

นั่นคือฉันตระหนักใน

System -> Configuration -> Design

ส่วนต่อประสานผู้ใช้มีคุณสมบัติที่ทำให้ฉันสามารถสร้างนิพจน์ทั่วไปที่ตรงกับสตริงตัวแทนผู้ใช้ สิ่งที่ฉันกำลังมองหาคือสิ่งที่ผู้คนใช้สายอักขระเฉพาะเพื่อเปลี่ยนเส้นทางคอมพิวเตอร์ที่ไม่ใช่เดสก์ท็อปไปยังธีมมือถือและ / หรือการตอบสนองที่แตกต่างกันอย่างไร

หรือมีวิธีการที่ดีกว่าวิธี "ยกเว้น" ที่จะใช้เวลาเหล่านี้หรือไม่

คำตอบ:


15

มีสองรุ่นที่แตกต่างกันซึ่งเราได้ใช้ สิ่งแรกคือสิ่งเดียวกับที่ @Marius พูดถึงลบด้วยการกล่าวถึง "Fennec" เฉพาะเจาะจง ( ซึ่งไม่ได้อยู่ในสตริง UAของ FF Mobile) ฉันได้รับจากแหล่งข้อมูลที่คล้ายกัน:

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

ที่สองเหมือนกัน แต่มีการลบคำว่า "มือถือ" เพื่อให้รุ่นมือถือของเว็บไซต์ไม่ได้แสดงบน iPad ซึ่งรวมถึงมือถือในตัวแทนผู้ใช้ Apple ได้ชี้ให้เห็นสิ่งนี้ในTN2262 :

Safari บน iPad สามารถส่งมอบประสบการณ์การใช้งานเว็บ "เดสก์ท็อป" และผู้ใช้จะคาดหวังประสบการณ์นี้เนื่องจาก iPad มีหน้าจอขนาดใหญ่และการเชื่อมต่อเครือข่ายที่รวดเร็ว หากคุณมีเว็บไซต์ในรุ่นที่ปรับให้เหมาะกับอุปกรณ์มือถือที่มีหน้าจอขนาดเล็กอย่าให้บริการเวอร์ชันมือถือนี้แก่ผู้ใช้ iPad

...

โปรดทราบว่าสตริงตัวแทนของผู้ใช้ Safari บน iPad มีคำว่า "มือถือ" แต่ไม่มีคำว่า "iPhone" หากคุณกำลังให้บริการเนื้อหาบนมือถือไปยังเบราว์เซอร์ใด ๆ ที่ระบุว่าตนเองเป็น "มือถือ" คุณควรแก้ไขการตรวจสอบสตริงตัวแทนผู้ใช้เพื่อค้นหา iPad และหลีกเลี่ยงการส่งเว็บไซต์ของคุณผิดเวอร์ชัน

จากสิ่งที่ฉันเห็นบน FF Mobile การใช้ "Android" ในสตริงนี้จะทำให้เกิดปัญหาหากคุณต้องการธีมเดสก์ท็อปที่ให้บริการกับแท็บเล็ตทั้งหมด (ไม่ใช่แค่ iPads) เนื่องจากมีการตัดสินใจที่จะรวมไว้ในสตริง UA ด้วยเหตุผลต่างๆ .

ฉันไม่ได้ทำการทดสอบความครอบคลุมของข้อความข้างต้นโดยสุจริต ฉันรู้สิ่งนี้: มันเป็นเรื่องยุ่งยากซับซ้อน! :)

หมายเหตุ: หากคุณกำลังตั้งค่านี้ใน EE 1.12 หรือก่อนหน้านี้ (ยังไม่ได้ตรวจสอบ 1.13) คุณจะต้องใช้ Patch จาก Magento Support เพื่อให้ FPC ทำงานได้อย่างถูกต้อง มันไม่สามารถนำข้อยกเว้นการออกแบบมาพิจารณาในการสร้างรุ่น

อัปเดต 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 สำหรับอุปกรณ์มือถือได้อย่างไร Magento 1.9.1
Allysin

7

ฉันได้เพิ่มข้อยกเว้นการออกแบบ 2 ข้อข้อหนึ่งสำหรับแท็บเล็ตซึ่งฉันให้บริการธีมเดสก์ท็อปและอีกอันสำหรับโทรศัพท์ซึ่งฉันให้บริการธีมมือถือของฉัน ฉันเพิ่มข้อยกเว้นสำหรับการกำหนดเป้าหมายเป็นแท็บเล็ตก่อนจากนั้นจะมีข้อยกเว้นสำหรับการกำหนดเป้าหมายโทรศัพท์มือถือ

แท็บเล็ต

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ที่ฉันใช้ regex เป็นรากฐานของฉันขอบคุณ beep!


1
ฉันรู้ว่ามันเก่า แต่เพิ่งต้องการแจ้งให้ทราบว่า Ipad ยังใช้สตริงมือถือดังนั้นคุณควรลบออกจากรายการโทรศัพท์
Toon Van Dooren

2

นี่คือรายการของค่าที่เป็นไปได้ ฉันเกือบจะแน่ใจว่าสิ่งเหล่านี้ไม่ใช่ค่าที่เป็นไปได้ทั้งหมด แต่ครอบคลุมถึงกรณีส่วนใหญ่:

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

แหล่งที่มา:
http://magebase.com/magento-tutorials/magento-design-exceptions-explained/
http://inchoo.net/ecommerce/magento/magento/magento-meme-imobile/


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

ตัวอย่างต่อไปนี้ตรงกับ iPad, iPhone และ Android ทั้งหมดยกเว้นรุ่น "2. *", "3. *", "4.0 *"

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

มันคือการใช้ lookarounds ลบดูคำอธิบายที่นี่
โปรดทราบว่าการพยายามเลียนแบบ "> 2.3" จะไม่ทำงานใน regex แต่ต้องมีวิธีแก้ไขเป็นตัวอย่าง
แหล่งข้อมูลที่ดีในการทดสอบการจับคู่ regex บนสตริงออนไลน์คือRubular

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.