Tôi có một số mã hóa đặc biệt chỉ hoạt động cho trình duyệt HTML5 (công cụ định vị địa lý đơn giản). Tôi muốn chuyển hướng người dùng iPhone và Android sang phiên bản m.example.com của trang web của tôi. Làm thế nào là cách tốt nhất để làm điều này?
Tôi có một số mã hóa đặc biệt chỉ hoạt động cho trình duyệt HTML5 (công cụ định vị địa lý đơn giản). Tôi muốn chuyển hướng người dùng iPhone và Android sang phiên bản m.example.com của trang web của tôi. Làm thế nào là cách tốt nhất để làm điều này?
Câu trả lời:
bạn có thể sử dụng tính năng phát hiện UserAgent hoặc bạn có thể sử dụng jQuery.support (). Vì bạn đang tìm kiếm chức năng cụ thể, bạn có thể kết hợp cả hai để có được những gì bạn muốn.
UserAgent thực sự có thể là lựa chọn tốt nhất của bạn. Thực hiện việc này với tệp .htaccess để cắt giảm các yêu cầu http của bạn và có thể flash trang web chính của bạn trước khi chuyển hướng trong trường hợp kết nối chậm hoặc hiệu suất javascript chậm.
Bạn có thể xem danh sách đầy đủ (hầu hết) các tác nhân người dùng di động trên trang wikipedia . Như bạn có thể thấy có sự tương đồng giữa các nhà sản xuất và các phiên bản mà bạn có thể tìm kiếm trong một biểu thức thông thường.
Câu hỏi của bạn chạm hai phần .. chuyển hướng và tương thích html5.
Chuyển hướng
Tôi đang sử dụng .htaccess sau:
RewriteCond %{HTTP_ACCEPT} "text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sony|symbian|nokia|samsung|mobile|windows ce|epoc|opera" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "mini|nitro|j2me|midp-|cldc-|netfront|mot|up\.browser|up\.link|audiovox" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "blackberry|ericsson,|panasonic|philips|sanyo|sharp|sie-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "portalmmm|blazer|avantgo|danger|palm|series60|palmsource|pocketpc" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "smartphone|rover|ipaq|au-mic,|alcatel|ericy|vodafone\/|wap1\.|wap2\.|iPhone|android" [NC]
RewriteRule ^(.*)$ http://m.example.com/ [L,R=302]
Đối với php, bạn có thể sử dụng thư viện này: http://detectmobilebrowsers.mobi/ ... nhưng tôi thực sự khuyên bạn nên sử dụng htaccess để xử lý thời gian và bảo mật.
Bạn có thể tìm thấy một số ví dụ bổ sung ở đây
http://ohryan.ca/blog/2009/02/18/revisiting-mobile-redirection-USE-htaccess-rewrite-rules/
Khả năng trình duyệt
Vì điện thoại Android của tôi không có vấn đề gì với html5 với mã định vị địa lý. Bạn có thể xem xét sử dụng Thư viện Javascript Modernizr để phát hiện các khả năng của trình duyệt máy khách đang truy cập trang của bạn.
Mẫu soạn sẵn HTML5 tuyệt vời đang sử dụng Modernizr để hỗ trợ loại nhu cầu này.
Ý kiến của tôi là: Tôi đề nghị sử dụng phương pháp htaccess cho mọi thứ trừ các điện thoại và trình duyệt gần đây được Modernizr hỗ trợ và để người dùng Android và iPhone kiểm tra tính năng hỗ trợ tính năng html5 và chuyển hướng "phần còn lại" trên phiên bản "không định vị địa lý" của bạn.
Ví dụ hiện đại:
if (Modernizr.geolocation) {
// do stuff
}else{
// propose mobile version
}
Hi vọng điêu nay co ich
Nếu bạn đang mã hóa bằng PHP, bạn có thể sử dụng $_SERVER['HTTP_USER_AGENT']
để kiểm tra tiêu đề UserAgent, được gửi gần như bởi bất kỳ thiết bị di động chính nào tới tập lệnh PHP. Sau đó, chỉ cần so sánh giá trị của tiêu đề này với sự hợp nhất với substr
bất cứ thứ gì nó cần phải có bên trong.
Ví dụ: các thiết bị của Apple sẽ luôn có các chuỗi con 'iphone' hoặc 'ipad'; Các thiết bị Android sẽ luôn có 'android'. Hầu như mọi thiết bị di động sẽ có chuỗi con 'di động' được liệt kê trong tiêu đề này.