Làm thế nào để bạn hướng trình duyệt iPhone / Android đến m.example.com?


8

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:


2

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.


3
Làm điều này là back-end rất được ưu tiên hơn so với làm điều đó với JS, đặc biệt là khi băng thông trên thiết bị di động rất hẹp. phương thức .htaccess là đặt cược tốt nhất, theo sau là phương pháp phụ trợ PHP / ASP / bất cứ điều gì
Mark Henderson

2

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


1

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 substrbấ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.

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.