Định cấu hình Thiết kế Ngoại lệ Chuỗi Exception cho các Thiết bị Mobile Mobile


16

Những chuỗi ngoại lệ nào là "trạng thái của nghệ thuật" để chuyển hướng người dùng iPhone, iPad, Android, máy tính bảng, v.v. sang một thiết kế khác?

Đó là, tôi nhận ra trong

System -> Configuration -> Design

giao diện người dùng, có một tính năng cho phép tôi tạo một biểu thức chính quy phù hợp với chuỗi tác nhân người dùng. Những gì tôi đang tìm kiếm là những chuỗi cụ thể mà mọi người đang sử dụng để chuyển hướng các máy tính không phải máy tính để bàn sang một chủ đề phản hồi và / hoặc thiết bị di động khác?

Hoặc có cách tiếp cận nào tốt hơn phương pháp "Ngoại lệ" để thực hiện những ngày này?

Câu trả lời:


15

Có hai phiên bản khác nhau mà chúng tôi đã sử dụng. Đầu tiên là cùng một cái mà @Marius đã đề cập đến trừ đi đề cập đến "Fennec" cụ thể ( không còn trong chuỗi UA của FF Mobile). Tôi đã nhận nó từ các nguồn tương tự:

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

Thứ hai là như vậy, nhưng với thuật ngữ "Di động" đã bị xóa để phiên bản di động của một trang web không được phục vụ cho iPad, bao gồm cả Mobile trong tác nhân người dùng. Apple thậm chí còn đưa ra quan điểm để gọi điều này trong TN2262 :

Safari trên iPad có khả năng mang lại trải nghiệm web "máy tính để bàn" và người dùng sẽ mong đợi trải nghiệm này vì iPad có màn hình lớn và kết nối mạng nhanh. Nếu bạn có phiên bản trang web được tối ưu hóa cho thiết bị di động có màn hình nhỏ, KHÔNG phục vụ phiên bản di động này cho người dùng iPad.

...

Lưu ý rằng chuỗi tác nhân người dùng Safari trên iPad có chứa từ "Di động", nhưng không chứa từ "iPhone". Nếu bạn hiện đang phân phát nội dung di động cho bất kỳ trình duyệt nào tự nhận là "Di động", bạn nên sửa đổi kiểm tra chuỗi tác nhân người dùng để tìm iPad và tránh gửi nhầm phiên bản trang web của bạn.

Dựa trên những gì tôi thấy trên FF Mobile, sử dụng "Android" trong chuỗi này sẽ gây rắc rối nếu bạn muốn chủ đề máy tính để bàn được phục vụ cho tất cả máy tính bảng (chứ không chỉ iPad) vì đã quyết định đưa nó vào chuỗi UA vì nhiều lý do .

Thành thật tôi đã không kiểm tra cá nhân phạm vi bảo hiểm của các chuỗi trên. Tôi biết điều này: Đó là một mớ hỗn độn phức tạp! :)

Lưu ý: Nếu bạn đang thiết lập tính năng này trên EE 1.12 trở về trước (chưa kiểm tra 1.13), bạn sẽ cần một bản vá từ Hỗ trợ Magento để FPC hoạt động chính xác. Nó không đưa các ngoại lệ thiết kế vào tài khoản trong bản dựng phát hành.

Cập nhật 1:

Lỗi lưu ý yêu cầu một bản vá cho các ngoại lệ thiết kế để hoạt động vẫn tồn tại trong EE 1.13.0.0 và 1.13.1.0. Có một bản vá có sẵn từ bộ phận hỗ trợ Magento và nó nằm trong danh sách các vấn đề đã biết của họ: SUPEE-1598


Tôi sẽ kiểm tra 1,13 cho bạn ... nhưng ...
philwinkle

1
Tôi có thể kiểm tra đủ dễ dàng, hiện tại tôi quá lười biếng. :)
davidalger

Nói một cách nghiêm túc, đây là một danh sách khá đầy đủ. +1.
philwinkle

@davidalger, tôi đã sử dụng biểu thức đầu tiên (bạn đã đề cập). Bây giờ làm thế nào để hiển thị trang web máy tính để bàn trong tất cả máy tính bảng, ipad, ipad mini? bởi vì tất cả chúng đều hiển thị chủ đề di động.
Kishore Patra

Tôi phải đặt các chuỗi này ở đâu để chuyển hướng thiết bị di động đến www.m.myDOMAIN.com cho thiết bị di động? Magento 1.9.1
Allysin

7

Tôi đã thêm 2 ngoại lệ thiết kế, một cho máy tính bảng, trong đó tôi phục vụ chủ đề máy tính để bàn và một cho điện thoại, trong đó tôi phục vụ chủ đề di động của mình. Tôi thêm ngoại lệ nhắm mục tiêu vào máy tính bảng trước, sau đó ngoại lệ nhắm mục tiêu vào điện thoại di động

Máy tính bảng

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

Những cái điện thoại

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

Này hoạt động khá nhiều 100% như mong đợi tôi phải cung cấp tín dụng, và một khổng lồ nhờ vào beeplogic người là tôi regex sử dụng như nền tảng của tôi, Cảm ơn bạn phát ra tiếng bíp!


1
Tôi biết điều này đã cũ nhưng chỉ muốn thông báo rằng Ipad cũng sử dụng chuỗi Di động, vì vậy bạn nên xóa nó khỏi danh sách điện thoại
Toon Van Dooren

2

Dưới đây là danh sách các giá trị có thể. Tôi gần như chắc chắn rằng đây không phải là tất cả các giá trị có thể, nhưng nó bao gồm hầu hết các trường hợp:

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

Nguồn:
http://magebase.com/magento-tutorials/magento-design-exceptions-explained/
http://inchoo.net/ecommerce/magento/magento-mobile-theme-imobile/


1

Đây là một cái tôi đã sử dụng:

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

Tôi có một nhu cầu cụ thể để lọc ra các phiên bản cụ thể của thiết bị Android. Cách tiếp cận tương tự có thể được sử dụng để lọc ra các phiên bản iOS.

Ví dụ sau phù hợp với iPad, iPhone và tất cả Android ngoại trừ các phiên bản "2. *", "3. *", "4.0 *"

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

Nó đang sử dụng cái nhìn tiêu cực, xem giải thích ở đây .
Lưu ý rằng cố gắng bắt chước "> 2.3" sẽ không hoạt động trong regex, nhưng cần một cách giải quyết như ví dụ.
Một tài nguyên tuyệt vời để kiểm tra kết hợp regex trên chuỗi trực tuyến là Rubular

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.